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

{
  _Base_ptr *pp_Var1;
  byte bVar2;
  ushort uVar3;
  General_options *pGVar4;
  pointer puVar5;
  uint uVar6;
  _Base_ptr p_Var7;
  Target *pTVar8;
  Garbage_collection *pGVar9;
  undefined4 *puVar10;
  _func_int_varargs *p_Var11;
  char *pcVar12;
  Icf *pIVar13;
  code *pcVar14;
  Parameters *pPVar15;
  size_t sVar16;
  _func_int_varargs **pp_Var17;
  Xindex *pXVar18;
  pointer pcVar19;
  int iVar20;
  _Rb_tree_header *p_Var21;
  _Base_ptr p_Var22;
  _Rb_tree_header *p_Var23;
  char cVar24;
  General_options *extraout_EDX;
  General_options *extraout_EDX_00;
  pointer ppSVar25;
  General_options *extraout_EDX_01;
  _Alloc_hider _Var26;
  General_options *extraout_EDX_02;
  General_options *extraout_EDX_03;
  pointer extraout_EDX_04;
  General_options *extraout_EDX_05;
  General_options *extraout_EDX_06;
  byte bVar27;
  uint uVar28;
  Relobj *pRVar29;
  undefined4 *puVar30;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  **ppaVar31;
  Addend_info *unaff_ESI;
  undefined **ppuVar32;
  byte *pbVar33;
  Addend_info *pAVar34;
  _func_int_varargs **pp_Var35;
  _Alloc_hider _Var36;
  bool bVar37;
  bool bVar38;
  bool bVar39;
  byte bVar40;
  pair<std::__detail::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>,_bool>
  pVar41;
  General_options *pGStack_f0;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *local_ec;
  __node_gen_type *local_e8;
  uint local_e4;
  Reloc_addend_size_info *local_e0;
  Addend_info *local_dc;
  Relobj *local_d8;
  size_t local_d4;
  undefined1 *local_d0;
  Offset_info *local_cc;
  Symbol_info *local_c8;
  _func_int_varargs **local_c4;
  bool local_be;
  char local_bd;
  mapped_type *local_bc;
  Parameters **local_b8;
  int local_b4;
  Output_segment *local_b0;
  pointer local_ac;
  undefined **local_a8;
  Relobj *local_a4;
  Icf *local_a0;
  code *local_9c;
  _Rb_tree_header *local_98;
  undefined1 local_94 [16];
  __node_gen_type __node_gen_2;
  __node_gen_type __node_gen_3;
  __node_gen_type __node_gen_1;
  __node_gen_type __node_gen;
  Section_id *local_74;
  Icf *local_70;
  Sized_relobj_file<32,_true> *local_6c;
  uint local_68;
  Output_segment *local_64;
  Relobj *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;
  
  bVar40 = 0;
  local_a8 = &_GLOBAL_OFFSET_TABLE_;
  if (sh_type == 9) {
    return;
  }
  local_b8 = &gold::parameters;
  pGVar4 = gold::parameters->options_;
  if (pGVar4 == (General_options *)0x0) {
    pGStack_f0 = pGVar4;
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (pGVar4->icf_status_ == ICF_NONE) {
    local_ec = &src_section_name.field_2;
    pGStack_f0 = (General_options *)0x0;
    src_section_name._M_dataplus._M_p = (pointer)local_ec;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&src_section_name,"","");
    ppaVar31 = &local_ec;
  }
  else {
    (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])
              (&src_section_name,object,data_shndx);
    local_ec = &src_section_name.field_2;
    ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                **)&pGStack_f0;
  }
  _Var36._M_p = src_section_name._M_dataplus._M_p;
  pPVar15 = *local_b8;
  _Var26._M_p = (pointer)pPVar15->options_;
  if ((General_options *)_Var26._M_p == (General_options *)0x0) {
    *(Parameters **)((int)ppaVar31 + -4) = pPVar15;
    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;
    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;
    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f139;
    gold::do_gold_unreachable
              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
               *(char **)((int)ppaVar31 + -8));
  }
  if (((General_options *)_Var26._M_p)->icf_status_ == ICF_NONE) {
LAB_0021e40f:
    local_bd = '\0';
    local_e0 = (Reloc_addend_size_info *)0x0;
    local_cc = (Offset_info *)0x0;
    local_dc = (Addend_info *)0x0;
    local_c8 = (Symbol_info *)0x0;
    local_bc = (mapped_type *)0x0;
  }
  else {
    local_a4 = (Relobj *)&local_2c;
    src_id.first = (Relobj *)&local_2c;
    pcVar19 = (pointer)0xffffffff;
    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {
      *(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;
      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef87;
      sVar16 = strlen(*(char **)((int)ppaVar31 + -0x10));
      pcVar19 = _Var36._M_p + sVar16;
    }
    *(undefined4 *)((int)ppaVar31 + -4) = 0;
    *(pointer *)((int)ppaVar31 + -8) = pcVar19;
    local_a0 = (Icf *)&src_id;
    *(pointer *)((int)ppaVar31 + -0xc) = _Var36._M_p;
    *(Icf **)((int)ppaVar31 + -0x10) = local_a0;
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef9f;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>();
    iVar20 = 5;
    bVar37 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppaVar31 + -0x10);
    bVar39 = ppaVar31 ==
             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
              **)0x0;
    ppuVar32 = local_a8 + -0x67293;
    pRVar29 = src_id.first;
    do {
      if (iVar20 == 0) break;
      iVar20 = iVar20 + -1;
      bVar27 = *(byte *)&(pRVar29->super_Object)._vptr_Object;
      bVar37 = *(byte *)ppuVar32 < bVar27;
      bVar39 = *(byte *)ppuVar32 == bVar27;
      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
      pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);
    } while (bVar39);
    bVar38 = false;
    bVar37 = (!bVar37 && !bVar39) == bVar37;
    if (!bVar37) {
      iVar20 = 0xf;
      pAVar34 = (Addend_info *)((int)local_a8 + -0x19ca46);
      pRVar29 = src_id.first;
      do {
        unaff_ESI = pAVar34;
        if (iVar20 == 0) break;
        iVar20 = iVar20 + -1;
        unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);
        bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;
        bVar27 = *(byte *)&(pAVar34->
                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                           )._M_impl._M_start;
        bVar38 = bVar27 < bVar2;
        bVar37 = bVar27 == bVar2;
        pAVar34 = unaff_ESI;
        pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);
      } while (bVar37);
      if ((!bVar38 && !bVar37) != bVar38) {
        if (src_id.first == local_a4) {
          pPVar15 = *local_b8;
          _Var26._M_p = (pointer)src_id.first;
        }
        else {
          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;
          operator_delete(*(void **)((int)ppaVar31 + -0x10));
          pPVar15 = *local_b8;
          _Var26._M_p = (pointer)extraout_EDX_06;
        }
        goto LAB_0021e40f;
      }
    }
    if (src_id.first != local_a4) {
      *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;
      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f1a9;
      operator_delete(*(void **)((int)ppaVar31 + -0x10));
    }
    *(Icf **)((int)ppaVar31 + -0xc) = local_a0;
    src_id.first = (Relobj *)object;
    src_id.second = data_shndx;
    local_a0 = symtab->icf_;
    *(Reloc_info_list **)((int)ppaVar31 + -0x10) = &symtab->icf_->reloc_info_list_;
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f014;
    local_bc = 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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -0xc));
    unaff_ESI = &local_bc->addend_info;
    _Var26._M_p = (pointer)&local_bc->offset_info;
    local_c8 = &local_bc->symbol_info;
    local_e0 = &local_bc->reloc_addend_size_info;
    local_dc = unaff_ESI;
    local_cc = (Offset_info *)_Var26._M_p;
    pPVar15 = *local_b8;
    local_bd = '\x01';
  }
  if (pPVar15->options_ == (General_options *)0x0) {
    *(Addend_info **)((int)ppaVar31 + -4) = unaff_ESI;
    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;
    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;
    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f155;
    gold::do_gold_unreachable
              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
               *(char **)((int)ppaVar31 + -8));
  }
  local_be = false;
  if (pPVar15->options_->icf_status_ == ICF_SAFE) {
    *(Target_s390<32> **)((int)ppaVar31 + -0x10) = this;
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eeab;
    local_be = do_can_check_for_function_pointers(*(Target_s390<32> **)((int)ppaVar31 + -0x10));
    bVar37 = false;
    bVar39 = !local_be;
    _Var26._M_p = (pointer)extraout_EDX_05;
    if (!bVar39) {
      iVar20 = 0xc;
      local_be = false;
      ppuVar32 = local_a8 + -0x66894;
      _Var26 = src_section_name._M_dataplus;
      do {
        if (iVar20 == 0) break;
        iVar20 = iVar20 + -1;
        bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p;
        bVar39 = *(byte *)ppuVar32 == *_Var26._M_p;
        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1);
      } while (bVar39);
      bVar38 = false;
      bVar37 = (!bVar37 && !bVar39) == bVar37;
      _Var26 = src_section_name._M_dataplus;
      if (!bVar37) {
        iVar20 = 0x11;
        pbVar33 = (byte *)((int)local_a8 + -0x19a243);
        _Var36 = src_section_name._M_dataplus;
        do {
          if (iVar20 == 0) break;
          iVar20 = iVar20 + -1;
          bVar38 = *pbVar33 < (byte)*_Var36._M_p;
          bVar37 = *pbVar33 == *_Var36._M_p;
          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;
          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);
        } while (bVar37);
        bVar39 = false;
        bVar37 = (!bVar38 && !bVar37) == bVar38;
        if (!bVar37) {
          iVar20 = 0xc;
          pbVar33 = (byte *)((int)local_a8 + -0x19a231);
          _Var36 = src_section_name._M_dataplus;
          do {
            if (iVar20 == 0) break;
            iVar20 = iVar20 + -1;
            bVar39 = *pbVar33 < (byte)*_Var36._M_p;
            bVar37 = *pbVar33 == *_Var36._M_p;
            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;
            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);
          } while (bVar37);
          bVar38 = false;
          bVar37 = (!bVar39 && !bVar37) == bVar39;
          if (!bVar37) {
            iVar20 = 0x11;
            ppuVar32 = local_a8 + -0x66889;
            _Var36 = src_section_name._M_dataplus;
            do {
              if (iVar20 == 0) break;
              iVar20 = iVar20 + -1;
              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;
              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;
              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);
            } while (bVar37);
            bVar39 = false;
            bVar37 = (!bVar38 && !bVar37) == bVar38;
            if (!bVar37) {
              iVar20 = 9;
              pbVar33 = (byte *)((int)local_a8 + -0x19a212);
              _Var36 = src_section_name._M_dataplus;
              do {
                if (iVar20 == 0) break;
                iVar20 = iVar20 + -1;
                bVar39 = *pbVar33 < (byte)*_Var36._M_p;
                bVar37 = *pbVar33 == *_Var36._M_p;
                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;
                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);
              } while (bVar37);
              local_be = (!bVar39 && !bVar37) != bVar39;
            }
          }
        }
      }
    }
  }
  if (reloc_count != 0) {
    local_c4 = (_func_int_varargs **)0x0;
    local_d0 = local_94;
    local_d4 = 0;
    local_e8 = &__node_gen;
    do {
      uVar6 = *(uint *)(prelocs + 4);
      local_e4 = uVar6 >> 0x18;
      uVar28 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;
      uVar6 = *(uint *)(prelocs + 8);
      local_ac = (pointer)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |
                          uVar6 << 0x18);
      if (uVar28 < param_10) {
        if (plocal_symbols == (uchar *)0x0) {
          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;
          *(undefined4 *)((int)ppaVar31 + -0xc) = 0xea;
          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0a4;
          gold::do_gold_unreachable
                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
                     *(char **)((int)ppaVar31 + -8));
        }
        local_a4 = (Relobj *)
                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) << 8 |
                                 *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) >> 8);
        if (local_a4 < (Relobj *)0xff00) {
LAB_0021e61b:
          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);
          pRVar29 = (Relobj *)
                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18
                    );
          local_b4 = (int)&local_ac->first + (int)pRVar29;
          if (local_bd != '\0') {
            src_id.first = (Relobj *)object;
            src_id.second = (uint)local_a4;
            *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;
            *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;
            local_a0 = (Icf *)&src_id;
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e662;
            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>_>_>
                         **)((int)ppaVar31 + -0x10),
                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));
            bVar37 = true;
            if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0021e505;
LAB_0021e679:
            *(Icf **)((int)ppaVar31 + -0xc) = local_a0;
            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;
            src_id.first = (Relobj *)0xffffffff;
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e694;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));
            goto LAB_0021e520;
          }
        }
        else {
          if (local_a4 == (Relobj *)0xffff) {
            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;
            if (pXVar18 == (Xindex *)0x0) {
              pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.
                         _vptr_Object;
              *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;
              p_Var11 = pp_Var17[0x1b];
              *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;
              pXVar18 = (Xindex *)(*p_Var11)();
              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;
            }
            *(uint *)((int)ppaVar31 + -8) = uVar28;
            *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc) = object;
            *(Xindex **)((int)ppaVar31 + -0x10) = pXVar18;
                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e719;
            local_a4 = (Relobj *)
                       gold::Xindex::sym_xindex_to_shndx
                                 (*(Xindex **)((int)ppaVar31 + -0x10),
                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8));
            _Var26._M_p = (pointer)extraout_EDX_00;
            goto LAB_0021e61b;
          }
          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);
          pRVar29 = (Relobj *)
                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18
                    );
          local_b4 = (int)&local_ac->first + (int)pRVar29;
          if (local_bd == '\0') goto LAB_0021e5a5;
          src_id.first = (Relobj *)0x0;
          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;
          src_id.second = 0;
          local_a0 = (Icf *)&src_id;
                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e4f1;
          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>_>_>
                       **)((int)ppaVar31 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));
          bVar37 = false;
          if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0021e679;
LAB_0021e505:
          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;
          *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;
          src_id.first = (Relobj *)0x0;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e520;
          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                      ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));
LAB_0021e520:
          src_id.first = pRVar29;
          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;
          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;
          local_2c = local_ac;
          src_id.second = 0;
          local_28._M_p = (pointer)((int)local_ac >> 0x1f);
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e550;
          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>_>_>
                       **)((int)ppaVar31 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));
          src_id.second = 0;
          uVar6 = *(uint *)prelocs;
          puVar5 = (local_cc->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          src_id.first = (Relobj *)
                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |
                         uVar6 << 0x18);
          if (puVar5 == (local_cc->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)ppaVar31 + -8) = local_a0;
            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;
            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed65;
            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>_> **)
                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),
                       *(ulonglong **)((int)ppaVar31 + -8));
          }
          else {
            *(Relobj **)puVar5 = src_id.first;
            *(uint *)((int)puVar5 + 4) = 0;
            (local_cc->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar5 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e598;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)
                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));
          _Var26._M_p = (pointer)extraout_EDX;
          if (!bVar37) goto LAB_0021e5a5;
        }
        if ((local_be != false) && ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 1)) {
          if ((*local_b8)->options_ == (General_options *)0x0) {
            *(pointer *)((int)ppaVar31 + -4) = _Var26._M_p;
            *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;
            *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;
            *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f11d;
            gold::do_gold_unreachable
                      (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
                       *(char **)((int)ppaVar31 + -8));
          }
          if (((*local_b8)->options_->shared_).value == false) {
            if (local_e4 - 4 < 0x37) {
                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();
              return;
            }
          }
          else {
            local_a0 = symtab->icf_;
            local_6c = object;
            uVar3 = *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe);
            *(undefined4 *)((int)ppaVar31 + -0xc) = 1;
            *(undefined4 *)((int)ppaVar31 + -0x10) = 0;
            local_68 = (uint)(ushort)(uVar3 << 8 | uVar3 >> 8);
            *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_2;
            *(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18) = &local_6c;
            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
            *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_2._M_h;
            *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;
            *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ec66;
            pVar41 = std::
                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                     ::
                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                               ();
            _Var26._M_p = pVar41._4_4_;
            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                        **)((int)ppaVar31 + -4);
          }
        }
        if ((Relobj *)data_shndx != local_a4) {
          local_b0 = (Output_segment *)object;
          puVar30 = ppaVar31;
LAB_0021e8f0:
          if ((*local_b8)->options_ == (General_options *)0x0) {
            puVar30[-2] = local_a8 + -0x5941e;
            puVar30[-3] = 0x5c;
            puVar30[-4] = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            puVar30[-5] = 0x21f0c2;
            gold::do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);
          }
          ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                      **)puVar30;
          if (((*local_b8)->options_->gc_sections_).value != false) {
            src_id_1.first = (Relobj *)object;
            p_Var23 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
            src_id_1.second = data_shndx;
            dst_id.first = (Relobj *)local_b0;
            dst_id.second = (uint)local_a4;
            p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            p_Var22 = &p_Var23->_M_header;
            if (p_Var7 == (_Base_ptr)0x0) {
LAB_0021e980:
              puVar30[-4] = &local_74;
              local_74 = &src_id_1;
              puVar30[-5] = 0x21e99b;
              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>_>_>_>_>_>
                          *)puVar30[-4],(_Base_ptr)puVar30[-3],
                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],
                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);
              p_Var21 = local_98;
            }
            else {
              do {
                while ((p_Var21 = (_Rb_tree_header *)p_Var7,
                       object <= (Sized_relobj_file<32,_true> *)
                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&
                       ((object != (Sized_relobj_file<32,_true> *)
                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||
                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {
                  p_Var7 = (p_Var21->_M_header)._M_left;
                  p_Var22 = &p_Var21->_M_header;
                  if ((p_Var21->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021e96a;
                }
                pp_Var1 = &(p_Var21->_M_header)._M_right;
                p_Var7 = *pp_Var1;
                p_Var21 = (_Rb_tree_header *)p_Var22;
              } while (*pp_Var1 != (_Base_ptr)0x0);
LAB_0021e96a:
              if (((p_Var23 == p_Var21) ||
                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||
                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&
                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;
            }
            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);
            puVar30[-3] = 1;
            puVar30[-4] = 0;
            puVar30[-5] = local_e8;
            puVar30[-6] = &dst_id;
            puVar30[-7] = __node_gen._M_h;
            puVar30[-8] = local_d0;
            puVar30[-9] = 0x21e9c7;
            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_b8)->target_;
            if (pTVar8 == (Target *)0x0) {
              puVar30[-3] = local_a8 + -0x59664;
              puVar30[-4] = 0x73;
              puVar30[-5] = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              puVar30[-6] = 0x21f101;
              gold::do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);
            }
            _Var26._M_p = (pointer)pTVar8->_vptr_Target[0x41];
            if ((General_options *)_Var26._M_p != (General_options *)(local_a8 + -0x1510f0)) {
              puVar30[-3] = local_b4;
              puVar30[-4] = local_a4;
              puVar30[-5] = local_b0;
              puVar30[-6] = data_shndx;
              puVar30[-7] = object;
              puVar30[-8] = symtab;
              puVar30[-9] = pTVar8;
              puVar30[-10] = 0x21eb71;
              (*(code *)_Var26._M_p)();
              _Var26._M_p = (pointer)extraout_EDX_02;
            }
            pp_Var17 = local_c4;
            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                        **)(puVar30 + -1);
            if (local_c4 != (_func_int_varargs **)0x0) {
              local_a4 = (Relobj *)&local_2c;
              pGVar9 = symtab->gc_;
              puVar30[-5] = local_c4;
              local_a0 = (Icf *)&src_id;
              src_id.first = (Relobj *)&local_2c;
              puVar30[-6] = 0x21ea36;
              sVar16 = strlen((char *)puVar30[-5]);
              pIVar13 = local_a0;
              puVar30[-2] = 0;
              puVar30[-3] = (byte *)((int)pp_Var17 + sVar16);
              puVar30[-4] = pp_Var17;
              puVar30[-5] = local_a0;
              puVar30[-6] = 0x21ea4b;
              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
              _M_construct<char_const*>();
              puVar30[-3] = pIVar13;
              puVar30[-4] = &pGVar9->cident_sections_;
              puVar30[-5] = &local_9c;
              puVar30[-6] = 0x21ea5f;
              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>_>_>_>_>_>
                      *)puVar30[-5],
                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                     puVar30[-4]);
              pcVar14 = local_9c;
              if (src_id.first != local_a4) {
                puVar30[-6] = src_id.first;
                puVar30[-7] = 0x21ea82;
                operator_delete((void *)puVar30[-6]);
              }
              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                          **)(puVar30 + -2);
              _Var26._M_p = (pointer)symtab->gc_;
              if ((One_option *)pcVar14 !=
                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.
                   option) {
                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special
                          .option.longname.field_2._M_local_buf + 8;
                src_id.first = (Relobj *)object;
                src_id.second = data_shndx;
                p_Var7 = *(_Base_ptr *)
                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).
                                 super_Struct_special.option.longname.field_2 + 0xc);
                p_Var22 = (_Base_ptr)pcVar12;
                if (p_Var7 == (_Base_ptr)0x0) {
LAB_0021ebb8:
                  puVar30[-6] = &local_70;
                  local_70 = local_a0;
                  puVar30[-7] = 0x21ebd6;
                  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>_>_>_>_>_>
                              *)puVar30[-6],(_Base_ptr)puVar30[-5],
                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],
                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);
                  p_Var23 = local_98;
                  _Var26._M_p = (pointer)extraout_EDX_03;
                }
                else {
                  do {
                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,
                           object <= (Sized_relobj_file<32,_true> *)
                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&
                           ((object != (Sized_relobj_file<32,_true> *)
                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||
                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {
                      p_Var7 = (p_Var23->_M_header)._M_left;
                      p_Var22 = &p_Var23->_M_header;
                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;
                    }
                    pp_Var1 = &(p_Var23->_M_header)._M_right;
                    p_Var7 = *pp_Var1;
                    p_Var23 = (_Rb_tree_header *)p_Var22;
                  } while (*pp_Var1 != (_Base_ptr)0x0);
LAB_0021eae2:
                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||
                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||
                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&
                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;
                }
                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                            **)(puVar30 + -2);
                puVar30 = puVar30 + -2;
                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;
                    puVar10 = (undefined4 *)*puVar10) {
                  *(undefined4 *)((int)puVar30 + -0xc) = 1;
                  *(undefined4 *)((int)puVar30 + -0x10) = 0;
                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;
                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;
                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);
                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;
                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;
                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);
                  pVar41 = 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>_>_>_>
                                     ();
                  _Var26._M_p = pVar41._4_4_;
                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                              **)((int)puVar30 + -4);
                  puVar30 = (undefined4 *)((int)puVar30 + -4);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar28 < object->local_symbol_count_) {
          src_id_1.first = (Relobj *)0x0;
LAB_0021ecef:
          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;
          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;
          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;
          gold::do_gold_unreachable
                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
                     *(char **)((int)ppaVar31 + -8));
        }
        uVar28 = uVar28 - object->local_symbol_count_;
        ppSVar25 = (object->symbols_).
                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                   _M_start;
        local_a0 = (Icf *)(object->symbols_).
                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                          _M_finish;
        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {
          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;
          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;
          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;
          gold::do_gold_unreachable
                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
                     *(char **)((int)ppaVar31 + -8));
        }
        src_id_1.first = (Relobj *)ppSVar25[uVar28];
        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;
        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {
          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;
          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;
          src_id_1.first =
               (Relobj *)
               gold::Symbol_table::resolve_forwards
                         (*(Symbol_table **)((int)ppaVar31 + -0x10),
                          *(Symbol **)((int)ppaVar31 + -0xc));
          ppSVar25 = extraout_EDX_04;
        }
        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {
          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)
                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;
          local_b4 = (int)&local_ac->first + (int)local_d8;
          if (((uint)local_b0->output_lists_[3].
                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                     _M_impl._M_end_of_storage & 1) == 0) {
            local_a4 = (Relobj *)
                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;
            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);
            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;
            bVar37 = (byte)ppSVar25 < 2;
            bVar39 = (byte)ppSVar25 == 2;
            if (bVar39) {
              bVar37 = false;
              bVar39 = local_be == false;
              if (!bVar39) {
                if (bVar27 != 0) {
                  if ((*local_b8)->options_ == (General_options *)0x0) {
                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;
                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;
                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;
                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */
                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;
                    gold::do_gold_unreachable
                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
                               *(char **)((int)ppaVar31 + -8));
                  }
                  if ((((*local_b8)->options_->shared_).value == false) ||
                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {
                    ppSVar25 = (pointer)(local_e4 - 4);
                    bVar37 = ppSVar25 < (pointer)0x36;
                    bVar39 = ppSVar25 == (pointer)0x36;
                    if (ppSVar25 < (pointer)0x37) {
                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();
                      return;
                    }
                    goto _L5607;
                  }
                }
                local_a0 = symtab->icf_;
                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;
                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;
                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;
                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;
                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;
                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;
                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;
                local_64 = local_b0;
                local_60 = local_a4;
                pVar41 = std::
                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                         ::
                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                                   ();
                ppSVar25 = pVar41._4_4_;
                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);
                bVar39 = ppaVar31 ==
                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                          **)0x4;
                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                            **)((int)ppaVar31 + -4);
              }
            }
          }
          else {
            local_a4 = (Relobj *)0x0;
            bVar37 = false;
            bVar27 = 0;
            bVar39 = true;
            local_b0 = (Output_segment *)0x0;
          }
        }
        else {
          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          bVar27 = 0;
          local_a4 = (Relobj *)0x0;
          local_b0 = (Output_segment *)0x0;
          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);
          local_b4 = (int)&local_ac->first + (int)local_d8;
          bVar39 = local_b4 == 0;
        }
_L5607:
        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;
        iVar20 = 8;
        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);
        pp_Var35 = pp_Var17;
        do {
          if (iVar20 == 0) break;
          iVar20 = iVar20 + -1;
          bVar37 = *pbVar33 < *(byte *)pp_Var35;
          bVar39 = *pbVar33 == *(byte *)pp_Var35;
          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;
          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);
        } while (bVar39);
        bVar38 = false;
        bVar37 = (!bVar37 && !bVar39) == bVar37;
        if (bVar37) {
          local_c4 = pp_Var17 + 2;
          cVar24 = '\0';
        }
        else {
          iVar20 = 7;
          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);
          pp_Var35 = pp_Var17;
          do {
            if (iVar20 == 0) break;
            iVar20 = iVar20 + -1;
            bVar38 = *pbVar33 < *(byte *)pp_Var35;
            bVar37 = *pbVar33 == *(byte *)pp_Var35;
            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;
            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);
          } while (bVar37);
          cVar24 = (!bVar38 && !bVar37) - bVar38;
          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);
          if (cVar24 != '\0') {
            pp_Var17 = local_c4;
          }
          local_c4 = pp_Var17;
        }
        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);
        if (local_bd != '\0') {
          if (bVar27 == 0) {
            src_id.first = (Relobj *)0x0;
            src_id.second = 0;
          }
          else {
            src_id.first = (Relobj *)local_b0;
            src_id.second = (uint)local_a4;
          }
          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;
          local_a0 = (Icf *)&src_id;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;
          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>_>_>
                       **)((int)ppaVar31 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));
          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                     _M_impl._M_finish;
          if (ppSVar25 ==
              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
              _M_end_of_storage) {
            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;
            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;
            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
            _M_realloc_insert<gold::Symbol*_const&>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),
                       *(Symbol ***)((int)ppaVar31 + -8));
          }
          else {
            *ppSVar25 = (Symbol *)src_id_1.first;
            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = ppSVar25 + 1;
          }
          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;
          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;
          src_id.first = local_d8;
          src_id.second = 0;
          local_2c = local_ac;
          local_28._M_p = (pointer)((int)local_ac >> 0x1f);
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;
          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>_>_>
                       **)((int)ppaVar31 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));
          src_id.second = 0;
          uVar6 = *(uint *)prelocs;
          puVar5 = (local_cc->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          src_id.first = (Relobj *)
                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |
                         uVar6 << 0x18);
          if (puVar5 == (local_cc->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)ppaVar31 + -8) = local_a0;
            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;
            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;
            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>_> **)
                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),
                       *(ulonglong **)((int)ppaVar31 + -8));
          }
          else {
            *(Relobj **)puVar5 = src_id.first;
            *(uint *)((int)puVar5 + 4) = 0;
            (local_cc->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar5 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)
                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));
          _Var26._M_p = (pointer)extraout_EDX_01;
        }
        puVar30 = ppaVar31;
        if (bVar27 != 0) goto LAB_0021e8f0;
      }
LAB_0021e5a5:
      local_d4 = local_d4 + 1;
      prelocs = prelocs + 0xc;
    } while (reloc_count != local_d4);
  }
  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_ec) {
    *(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e6ba;
    operator_delete(*(void **)((int)ppaVar31 + -0x10));
  }
  return;
}



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

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

{
  code cVar1;
  ushort uVar2;
  undefined4 *puVar3;
  byte *pbVar4;
  int iVar5;
  int *piVar6;
  size_t sVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  char cVar11;
  undefined4 extraout_EDX;
  undefined4 uVar12;
  undefined4 extraout_EDX_00;
  undefined **ppuVar13;
  undefined4 extraout_EDX_01;
  undefined **extraout_EDX_02;
  int extraout_EDX_03;
  undefined4 extraout_EDX_04;
  undefined4 extraout_EDX_05;
  code *extraout_EDX_06;
  code *extraout_EDX_07;
  byte bVar14;
  uint uVar15;
  code *pcVar16;
  undefined1 *puVar17;
  code **ppcVar18;
  code *unaff_ESI;
  int iVar19;
  byte *pbVar20;
  code *pcVar21;
  byte *pbVar22;
  code *pcVar23;
  bool bVar24;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  undefined8 uVar28;
  ulonglong uVar29;
  int iStack_f0;
  code *local_ec;
  code **local_e8;
  uint local_e4;
  int local_e0;
  code *local_dc;
  code *local_d8;
  int local_d4;
  undefined1 *local_d0;
  code *local_cc;
  int local_c8;
  byte *local_c4;
  char local_be;
  char local_bd;
  int local_bc;
  int *local_b8;
  code *local_b4;
  code *local_b0;
  uint local_ac;
  undefined **local_a8;
  code *local_a4;
  code **local_a0;
  code *local_9c;
  int local_98;
  undefined1 local_94 [16];
  code **local_84;
  code **local_80;
  code *local_7c;
  code *local_78;
  code **local_74;
  code **local_70;
  code *local_6c;
  uint local_68;
  code *local_64;
  undefined4 local_60;
  code *local_5c;
  uint local_58;
  code *local_54;
  undefined4 local_50;
  code *local_4c [2];
  undefined1 local_44 [16];
  code *local_34;
  uint local_30;
  uint local_2c;
  int local_28;
  
  bVar27 = 0;
  local_a8 = &__DT_PLTGOT;
  if (param_6 == 9) {
    return;
  }
  local_b8 = &DAT_005ea7c8;
  iVar19 = *(int *)(DAT_005ea7c8 + 8);
  if (iVar19 == 0) {
    iStack_f0 = iVar19;
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(iVar19 + 0x5934) == 0) {
    local_ec = (code *)local_44;
    iStack_f0 = 0;
    local_4c[0] = local_ec;
    FUN_00072b90(local_4c,"","");
    ppcVar18 = &local_ec;
  }
  else {
    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);
    local_ec = (code *)local_44;
    ppcVar18 = (code **)&iStack_f0;
  }
  pcVar21 = local_4c[0];
  iVar19 = *local_b8;
  pcVar16 = *(code **)(iVar19 + 8);
  if (pcVar16 == (code *)0x0) {
    *(int *)((int)ppcVar18 + -4) = iVar19;
    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;
    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;
    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;
    FUN_002446e0();
  }
  if (*(uint *)(pcVar16 + 0x5934) == 0) {
LAB_0021e40f:
    local_bd = '\0';
    local_e0 = 0;
    local_cc = (code *)0x0;
    local_dc = (code *)0x0;
    local_c8 = 0;
    local_bc = 0;
  }
  else {
    local_a4 = (code *)&local_2c;
    local_34 = local_a4;
    pcVar16 = (code *)0xffffffff;
    if (local_4c[0] != (code *)0x0) {
      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];
      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;
      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));
      pcVar16 = pcVar21 + sVar7;
    }
    *(undefined4 *)((int)ppcVar18 + -4) = 0;
    *(code **)((int)ppcVar18 + -8) = pcVar16;
    local_a0 = &local_34;
    *(code **)((int)ppcVar18 + -0xc) = pcVar21;
    *(code ***)((int)ppcVar18 + -0x10) = local_a0;
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;
    FUN_00072b90();
    iVar19 = 5;
    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);
    bVar26 = ppcVar18 == (code **)0x0;
    ppuVar13 = local_a8 + -0x67293;
    pcVar16 = local_34;
    do {
      if (iVar19 == 0) break;
      iVar19 = iVar19 + -1;
      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;
      bVar26 = *(code *)ppuVar13 == *pcVar16;
      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);
      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;
    } while (bVar26);
    bVar25 = false;
    bVar24 = (!bVar24 && !bVar26) == bVar24;
    if (!bVar24) {
      iVar19 = 0xf;
      pcVar16 = (code *)((int)local_a8 + -0x19ca46);
      pcVar21 = local_34;
      do {
        unaff_ESI = pcVar16;
        if (iVar19 == 0) break;
        iVar19 = iVar19 + -1;
        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;
        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;
        bVar24 = *pcVar16 == *pcVar21;
        pcVar16 = unaff_ESI;
        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;
      } while (bVar24);
      if ((!bVar25 && !bVar24) != bVar25) {
        if (local_34 == local_a4) {
          iVar19 = *local_b8;
          pcVar16 = local_34;
        }
        else {
          *(code **)((int)ppcVar18 + -0x10) = local_34;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;
          FUN_003ae080();
          iVar19 = *local_b8;
          pcVar16 = extraout_EDX_07;
        }
        goto LAB_0021e40f;
      }
    }
    if (local_34 != local_a4) {
      *(code **)((int)ppcVar18 + -0x10) = local_34;
      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;
      FUN_003ae080();
    }
    *(code ***)((int)ppcVar18 + -0xc) = local_a0;
    local_34 = param_4;
    local_30 = param_5;
    local_a0 = *(code ***)(param_2 + 0x15c);
    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;
    local_bc = FUN_00074520();
    local_c8 = local_bc + 0xc;
    unaff_ESI = (code *)(local_bc + 0x18);
    pcVar16 = (code *)(local_bc + 0x24);
    local_e0 = local_bc + 0x30;
    iVar19 = *local_b8;
    local_bd = '\x01';
    local_dc = unaff_ESI;
    local_cc = pcVar16;
  }
  if (*(int *)(iVar19 + 8) == 0) {
    *(code **)((int)ppcVar18 + -4) = unaff_ESI;
    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;
    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;
    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;
    FUN_002446e0();
  }
  local_be = '\0';
  if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {
    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;
    local_be = FUN_0020d670();
    bVar24 = false;
    bVar26 = local_be == '\0';
    pcVar16 = extraout_EDX_06;
    if (!bVar26) {
      iVar19 = 0xc;
      local_be = '\0';
      ppuVar13 = local_a8 + -0x66894;
      pcVar16 = local_4c[0];
      do {
        if (iVar19 == 0) break;
        iVar19 = iVar19 + -1;
        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;
        bVar26 = *(code *)ppuVar13 == *pcVar16;
        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);
        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;
      } while (bVar26);
      bVar25 = false;
      bVar24 = (!bVar24 && !bVar26) == bVar24;
      pcVar16 = local_4c[0];
      if (!bVar24) {
        iVar19 = 0x11;
        pcVar21 = (code *)((int)local_a8 + -0x19a243);
        pcVar23 = local_4c[0];
        do {
          if (iVar19 == 0) break;
          iVar19 = iVar19 + -1;
          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;
          bVar24 = *pcVar21 == *pcVar23;
          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;
          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;
        } while (bVar24);
        bVar26 = false;
        bVar24 = (!bVar25 && !bVar24) == bVar25;
        if (!bVar24) {
          iVar19 = 0xc;
          pcVar21 = (code *)((int)local_a8 + -0x19a231);
          pcVar23 = local_4c[0];
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;
            bVar24 = *pcVar21 == *pcVar23;
            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;
            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;
          } while (bVar24);
          bVar25 = false;
          bVar24 = (!bVar26 && !bVar24) == bVar26;
          if (!bVar24) {
            iVar19 = 0x11;
            ppuVar13 = local_a8 + -0x66889;
            pcVar21 = local_4c[0];
            do {
              if (iVar19 == 0) break;
              iVar19 = iVar19 + -1;
              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;
              bVar24 = *(code *)ppuVar13 == *pcVar21;
              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);
              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;
            } while (bVar24);
            bVar26 = false;
            bVar24 = (!bVar25 && !bVar24) == bVar25;
            if (!bVar24) {
              iVar19 = 9;
              pcVar21 = (code *)((int)local_a8 + -0x19a212);
              pcVar23 = local_4c[0];
              do {
                if (iVar19 == 0) break;
                iVar19 = iVar19 + -1;
                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;
                bVar24 = *pcVar21 == *pcVar23;
                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;
                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;
              } while (bVar24);
              local_be = (!bVar26 && !bVar24) != bVar26;
            }
          }
        }
      }
    }
  }
  uVar28 = CONCAT44(pcVar16,local_a4);
  if (param_8 != 0) {
    local_c4 = (byte *)0x0;
    local_d0 = local_94;
    local_e8 = &local_78;
    local_d4 = 0;
    do {
      local_a4 = (code *)uVar28;
      uVar8 = param_7[1];
      local_e4 = uVar8 >> 0x18;
      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;
      uVar8 = param_7[2];
      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
      if (uVar15 < param_11) {
        if (param_12 == 0) {
          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;
          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;
          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;
          FUN_002446e0();
        }
        iVar19 = uVar15 * 0x10 + param_12;
        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |
                                         *(ushort *)(iVar19 + 0xe) >> 8);
        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);
        if (local_a4 < 0xff00) {
LAB_0021e61b:
          local_a4 = (code *)uVar28;
          uVar8 = *(uint *)(iVar19 + 4);
          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |
                            uVar8 << 0x18);
          local_b4 = pcVar16 + local_ac;
          if (local_bd != '\0') {
            local_34 = param_4;
            local_30 = (uint)local_a4;
            local_a0 = &local_34;
            *(code ***)((int)ppcVar18 + -0xc) = local_a0;
            *(int *)((int)ppcVar18 + -0x10) = local_bc;
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;
            FUN_00073b00();
            bVar24 = true;
            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;
LAB_0021e679:
            *(code ***)((int)ppcVar18 + -0xc) = local_a0;
            *(int *)((int)ppcVar18 + -0x10) = local_c8;
            local_34 = (code *)0xffffffff;
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;
            FUN_00073ca0();
            goto LAB_0021e520;
          }
        }
        else {
          if (local_a4 == (code *)0xffff) {
            uVar8 = *(uint *)(param_4 + 0x30);
            if (uVar8 == 0) {
              uVar8 = *(uint *)param_4;
              *(code **)((int)ppcVar18 + -0x10) = param_4;
              pcVar16 = *(code **)(uVar8 + 0x6c);
              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;
              uVar8 = (*pcVar16)();
              *(uint *)(param_4 + 0x30) = uVar8;
            }
            *(uint *)((int)ppcVar18 + -8) = uVar15;
            *(code **)((int)ppcVar18 + -0xc) = param_4;
            *(uint *)((int)ppcVar18 + -0x10) = uVar8;
                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;
            uVar28 = FUN_0028b7d0();
            goto LAB_0021e61b;
          }
          uVar8 = *(uint *)(iVar19 + 4);
          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |
                            uVar8 << 0x18);
          local_b4 = pcVar16 + local_ac;
          if (local_bd == '\0') goto LAB_0021e5a5;
          local_a0 = &local_34;
          local_34 = (code *)0x0;
          *(code ***)((int)ppcVar18 + -0xc) = local_a0;
          *(int *)((int)ppcVar18 + -0x10) = local_bc;
          local_30 = 0;
                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;
          FUN_00073b00();
          bVar24 = false;
          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;
LAB_0021e505:
          *(code ***)((int)ppcVar18 + -0xc) = local_a0;
          *(int *)((int)ppcVar18 + -0x10) = local_c8;
          local_34 = (code *)0x0;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;
          FUN_00073ca0();
LAB_0021e520:
          *(code ***)((int)ppcVar18 + -0xc) = local_a0;
          *(code **)((int)ppcVar18 + -0x10) = local_dc;
          local_2c = local_ac;
          local_28 = (int)local_ac >> 0x1f;
          local_30 = 0;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;
          local_34 = pcVar16;
          FUN_00073e70();
          local_30 = 0;
          uVar8 = *param_7;
          puVar3 = *(undefined4 **)(local_cc + 4);
          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |
                             uVar8 << 0x18);
          if (puVar3 == *(undefined4 **)(local_cc + 8)) {
            *(code ***)((int)ppcVar18 + -8) = local_a0;
            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;
            *(code **)((int)ppcVar18 + -0x10) = local_cc;
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;
            FUN_00072a40();
          }
          else {
            *puVar3 = local_34;
            puVar3[1] = 0;
            *(undefined4 **)(local_cc + 4) = puVar3 + 2;
          }
          local_54 = (code *)0x0;
          *(code ***)((int)ppcVar18 + -0xc) = &local_54;
          *(int *)((int)ppcVar18 + -0x10) = local_e0;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;
          FUN_00074020();
          uVar28 = CONCAT44(extraout_EDX,local_a4);
          if (!bVar24) goto LAB_0021e5a5;
        }
        local_a4 = (code *)uVar28;
        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {
          if (*(int *)(*local_b8 + 8) == 0) {
            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);
            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;
            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;
            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;
            FUN_002446e0();
          }
          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {
            if (local_e4 - 4 < 0x37) {
                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();
              return;
            }
          }
          else {
            local_a0 = *(code ***)(param_2 + 0x15c);
            local_6c = param_4;
            uVar2 = *(ushort *)(iVar19 + 0xe);
            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;
            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;
            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);
            *(code ****)((int)ppcVar18 + -0x14) = &local_84;
            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;
            local_84 = local_a0 + 0xd;
            *(code ***)((int)ppcVar18 + -0x1c) = local_84;
            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;
            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;
            FUN_00074280();
            uVar28 = CONCAT44(extraout_EDX_04,local_a4);
            ppcVar18 = (code **)((int)ppcVar18 + -4);
          }
        }
        local_a4 = (code *)uVar28;
        if ((code *)param_5 != local_a4) {
          local_b0 = param_4;
          puVar17 = (undefined1 *)ppcVar18;
LAB_0021e8f0:
          local_a4 = (code *)uVar28;
          if (*(int *)(*local_b8 + 8) == 0) {
            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;
            *(undefined4 *)(puVar17 + -0xc) = 0x5c;
            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;
            FUN_002446e0();
          }
          ppcVar18 = (code **)puVar17;
          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {
            local_5c = param_4;
            iVar19 = *(int *)(param_2 + 0x158) + 0x14;
            local_58 = param_5;
            local_54 = local_b0;
            local_50 = local_a4;
            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);
            iVar9 = iVar19;
            if (iVar5 == 0) {
LAB_0021e980:
              local_74 = &local_5c;
              *(code ****)(puVar17 + -0x10) = &local_74;
              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;
              FUN_00212060();
              iVar10 = local_98;
            }
            else {
              do {
                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&
                       ((param_4 != *(code **)(iVar10 + 0x10) ||
                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {
                  iVar5 = *(int *)(iVar10 + 8);
                  iVar9 = iVar10;
                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;
                }
                piVar6 = (int *)(iVar10 + 0xc);
                iVar5 = *piVar6;
                iVar10 = iVar9;
              } while (*piVar6 != 0);
LAB_0021e96a:
              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||
                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))
              goto LAB_0021e980;
            }
            local_78 = (code *)(iVar10 + 0x18);
            *(undefined4 *)(puVar17 + -0xc) = 1;
            *(undefined4 *)(puVar17 + -0x10) = 0;
            *(code ***)(puVar17 + -0x14) = local_e8;
            *(code ***)(puVar17 + -0x18) = &local_54;
            *(code **)(puVar17 + -0x1c) = local_78;
            *(undefined1 **)(puVar17 + -0x20) = local_d0;
            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;
            FUN_00074340();
            piVar6 = *(int **)(*local_b8 + 0xc);
            if (piVar6 == (int *)0x0) {
              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;
              *(undefined4 *)(puVar17 + -0x10) = 0x73;
              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;
              FUN_002446e0();
            }
            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);
            if (ppuVar13 != local_a8 + -0x1510f0) {
              *(code **)(puVar17 + -0xc) = local_b4;
              *(code **)(puVar17 + -0x10) = local_a4;
              *(code **)(puVar17 + -0x14) = local_b0;
              *(uint *)(puVar17 + -0x18) = param_5;
              *(code **)(puVar17 + -0x1c) = param_4;
              *(int *)(puVar17 + -0x20) = param_2;
              *(int **)(puVar17 + -0x24) = piVar6;
              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;
              (*(code *)ppuVar13)();
              ppuVar13 = extraout_EDX_02;
            }
            pbVar4 = local_c4;
            uVar28 = CONCAT44(ppuVar13,local_a4);
            ppcVar18 = (code **)(puVar17 + -4);
            if (local_c4 != (byte *)0x0) {
              local_a4 = (code *)&local_2c;
              local_a0 = &local_34;
              iVar19 = *(int *)(param_2 + 0x158);
              *(byte **)(puVar17 + -0x14) = local_c4;
              local_34 = local_a4;
              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;
              sVar7 = strlen(*(char **)(puVar17 + -0x14));
              ppcVar18 = local_a0;
              *(undefined4 *)(puVar17 + -8) = 0;
              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;
              *(byte **)(puVar17 + -0x10) = pbVar4;
              *(code ***)(puVar17 + -0x14) = local_a0;
              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;
              FUN_00072b90();
              *(code ***)(puVar17 + -0xc) = ppcVar18;
              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;
              *(code ***)(puVar17 + -0x14) = &local_9c;
              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;
              FUN_00094bd0();
              pcVar16 = local_9c;
              if (local_34 != local_a4) {
                *(code **)(puVar17 + -0x18) = local_34;
                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;
                FUN_003ae080();
              }
              ppcVar18 = (code **)(puVar17 + -8);
              iVar19 = *(int *)(param_2 + 0x158);
              uVar28 = CONCAT44(iVar19,local_a4);
              if (pcVar16 != (code *)(iVar19 + 0x48)) {
                local_34 = param_4;
                local_30 = param_5;
                iVar5 = *(int *)(iVar19 + 0x18);
                iVar9 = iVar19 + 0x14;
                if (*(int *)(iVar19 + 0x18) == 0) {
LAB_0021ebb8:
                  *(code ****)(puVar17 + -0x18) = &local_70;
                  local_70 = local_a0;
                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;
                  FUN_00212060();
                  iVar10 = local_98;
                  iVar19 = extraout_EDX_03;
                }
                else {
                  do {
                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&
                           ((param_4 != *(code **)(iVar10 + 0x10) ||
                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {
                      iVar5 = *(int *)(iVar10 + 8);
                      iVar9 = iVar10;
                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;
                    }
                    piVar6 = (int *)(iVar10 + 0xc);
                    iVar5 = *piVar6;
                    iVar10 = iVar9;
                  } while (*piVar6 != 0);
LAB_0021eae2:
                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||
                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))
                     )) goto LAB_0021ebb8;
                }
                uVar28 = CONCAT44(iVar19,local_a4);
                ppcVar18 = (code **)(puVar17 + -8);
                puVar17 = puVar17 + -8;
                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;
                    puVar3 = (undefined4 *)*puVar3) {
                  *(undefined4 *)(puVar17 + -0xc) = 1;
                  *(undefined4 *)(puVar17 + -0x10) = 0;
                  *(code ***)(puVar17 + -0x14) = &local_7c;
                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;
                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);
                  *(undefined1 **)(puVar17 + -0x20) = local_d0;
                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;
                  local_7c = (code *)(iVar10 + 0x18);
                  FUN_00074340();
                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);
                  ppcVar18 = (code **)(puVar17 + -4);
                  puVar17 = puVar17 + -4;
                }
              }
            }
          }
        }
      }
      else {
        if (uVar15 < *(uint *)(param_4 + 0xb0)) {
          local_5c = (code *)0x0;
LAB_0021ecef:
          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;
          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;
          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;
          FUN_002446e0();
        }
        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);
        uVar8 = *(uint *)(param_4 + 0xbc);
        local_a0 = *(code ***)(param_4 + 0xc0);
        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {
          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;
          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;
          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;
          FUN_002446e0();
        }
        local_5c = *(code **)(uVar8 + uVar15 * 4);
        uVar29 = CONCAT44(uVar8,local_5c);
        if (local_5c == (code *)0x0) goto LAB_0021ecef;
        if (((byte)local_5c[0x2a] & 0x10) != 0) {
          *(code **)((int)ppcVar18 + -0xc) = local_5c;
          *(int *)((int)ppcVar18 + -0x10) = param_2;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;
          uVar29 = FUN_0034cd90();
        }
        local_5c = (code *)uVar29;
        if (((byte)local_5c[0x2a] & 7) == 0) {
          local_d8 = *(code **)(local_5c + 0x30);
          local_b0 = *(code **)(local_5c + 8);
          local_b4 = local_d8 + local_ac;
          if (((byte)local_b0[0x2c] & 1) == 0) {
            cVar1 = local_5c[0x28];
            local_a4 = *(code **)(local_5c + 0xc);
            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;
            bVar24 = ((byte)cVar1 & 0xf) < 2;
            bVar26 = ((byte)cVar1 & 0xf) == 2;
            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;
            if (bVar26) {
              bVar24 = false;
              bVar26 = local_be == '\0';
              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;
              if (!bVar26) {
                if (bVar14 != 0) {
                  if (*(int *)(*local_b8 + 8) == 0) {
                    *(code **)((int)ppcVar18 + -4) = local_5c;
                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;
                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;
                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */
                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;
                    FUN_002446e0();
                  }
                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||
                     (((byte)local_5c[0x29] & 3) == 0)) {
                    uVar8 = local_e4 - 4;
                    bVar24 = uVar8 < 0x36;
                    bVar26 = uVar8 == 0x36;
                    uVar29 = CONCAT44(uVar8,local_5c);
                    if (uVar8 < 0x37) {
                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();
                      return;
                    }
                    goto LAB_0021e7e0;
                  }
                }
                local_a0 = *(code ***)(param_2 + 0x15c);
                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;
                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;
                *(code ****)((int)ppcVar18 + -0x14) = &local_80;
                *(code ***)((int)ppcVar18 + -0x18) = &local_64;
                local_80 = local_a0 + 0xd;
                *(code ***)((int)ppcVar18 + -0x1c) = local_80;
                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;
                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;
                local_64 = local_b0;
                local_60 = local_a4;
                FUN_00074280();
                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);
                bVar26 = ppcVar18 == (code **)0x4;
                ppcVar18 = (code **)((int)ppcVar18 + -4);
                uVar29 = CONCAT44(extraout_EDX_05,local_5c);
              }
            }
          }
          else {
            local_a4 = (code *)0x0;
            bVar24 = false;
            bVar14 = 0;
            bVar26 = true;
            local_b0 = (code *)0x0;
          }
        }
        else {
          local_d8 = *(code **)(local_5c + 0x30);
          bVar14 = 0;
          local_a4 = (code *)0x0;
          local_b0 = (code *)0x0;
          bVar24 = CARRY4(local_ac,(uint)local_d8);
          local_b4 = local_d8 + local_ac;
          bVar26 = local_b4 == (code *)0x0;
        }
LAB_0021e7e0:
        local_5c = (code *)uVar29;
        pbVar4 = *(byte **)local_5c;
        iVar19 = 8;
        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);
        pbVar22 = pbVar4;
        do {
          if (iVar19 == 0) break;
          iVar19 = iVar19 + -1;
          bVar24 = *pbVar20 < *pbVar22;
          bVar26 = *pbVar20 == *pbVar22;
          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;
        } while (bVar26);
        bVar25 = false;
        bVar24 = (!bVar24 && !bVar26) == bVar24;
        if (bVar24) {
          cVar11 = '\0';
          pbVar4 = pbVar4 + 8;
        }
        else {
          iVar19 = 7;
          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);
          pbVar22 = pbVar4;
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar25 = *pbVar20 < *pbVar22;
            bVar24 = *pbVar20 == *pbVar22;
            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;
          } while (bVar24);
          cVar11 = (!bVar25 && !bVar24) - bVar25;
          pbVar4 = pbVar4 + 7;
          if (cVar11 != '\0') {
            pbVar4 = local_c4;
          }
        }
        local_c4 = pbVar4;
        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);
        if (local_bd != '\0') {
          if (bVar14 == 0) {
            local_34 = (code *)0x0;
            local_30 = 0;
          }
          else {
            local_34 = local_b0;
            local_30 = (uint)local_a4;
          }
          local_a0 = &local_34;
          *(code ***)((int)ppcVar18 + -0xc) = local_a0;
          *(int *)((int)ppcVar18 + -0x10) = local_bc;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;
          FUN_00073b00();
          puVar3 = *(undefined4 **)(local_c8 + 4);
          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {
            *(code ***)((int)ppcVar18 + -8) = &local_5c;
            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;
            *(int *)((int)ppcVar18 + -0x10) = local_c8;
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;
            FUN_000726c0();
          }
          else {
            *puVar3 = local_5c;
            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;
          }
          *(code ***)((int)ppcVar18 + -0xc) = local_a0;
          *(code **)((int)ppcVar18 + -0x10) = local_dc;
          local_34 = local_d8;
          local_30 = 0;
          local_2c = local_ac;
          local_28 = (int)local_ac >> 0x1f;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;
          FUN_00073e70();
          local_30 = 0;
          uVar8 = *param_7;
          puVar3 = *(undefined4 **)(local_cc + 4);
          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |
                             uVar8 << 0x18);
          if (puVar3 == *(undefined4 **)(local_cc + 8)) {
            *(code ***)((int)ppcVar18 + -8) = local_a0;
            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;
            *(code **)((int)ppcVar18 + -0x10) = local_cc;
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;
            FUN_00072a40();
          }
          else {
            *puVar3 = local_34;
            puVar3[1] = 0;
            *(undefined4 **)(local_cc + 4) = puVar3 + 2;
          }
          local_54 = (code *)0x0;
          *(code ***)((int)ppcVar18 + -0xc) = &local_54;
          *(int *)((int)ppcVar18 + -0x10) = local_e0;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;
          FUN_00074020();
          uVar12 = extraout_EDX_00;
        }
        uVar28 = CONCAT44(uVar12,local_a4);
        puVar17 = (undefined1 *)ppcVar18;
        if (bVar14 != 0) goto LAB_0021e8f0;
      }
LAB_0021e5a5:
      local_a4 = (code *)uVar28;
      local_d4 = local_d4 + 1;
      param_7 = param_7 + 3;
    } while (param_8 != local_d4);
  }
  if (local_4c[0] != local_ec) {
    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;
    FUN_003ae080();
  }
  return;
}


CALL 0x00074f02
ADD EAX,0x3cbc7b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xdc
CMP dword ptr [EBP + 0x1c],0x9
MOV dword ptr [EBP + 0xffffff5c],EAX
JZ 0x0021e6bd
LEA EAX,[EAX + 0x7c8]
MOV dword ptr [EBP + 0xffffff4c],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0021f155
MOV EAX,dword ptr [EAX + 0x5934]
LEA EDX,[EBP + -0x48]
TEST EAX,EAX
JZ 0x0021e6c8
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 + 0xffffff18],EAX
ADD ESP,0xc
MOV EAX,dword ptr [EBP + 0xffffff4c]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x0021f11d
MOV EDI,dword ptr [EDX + 0x5934]
TEST EDI,EDI
JNZ 0x0021ef60
MOV byte ptr [EBP + 0xffffff47],0x0
MOV dword ptr [EBP + 0xffffff24],0x0
MOV dword ptr [EBP + 0xffffff38],0x0
MOV dword ptr [EBP + 0xffffff28],0x0
MOV dword ptr [EBP + 0xffffff3c],0x0
MOV dword ptr [EBP + 0xffffff48],0x0
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0021f139
CMP dword ptr [EAX + 0x5934],0x2
MOV byte ptr [EBP + 0xffffff46],0x0
JZ 0x0021eea0
MOV EBX,dword ptr [EBP + 0x24]
TEST EBX,EBX
JZ 0x0021e6a0
MOV dword ptr [EBP + 0xffffff40],0x0
LEA EAX,[EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff34],EAX
LEA EAX,[EBP + -0x74]
MOV dword ptr [EBP + 0xffffff30],0x0
MOV dword ptr [EBP + 0xffffff1c],EAX
JMP 0x0021e5bf
CMP EAX,0xffff
JZ 0x0021e6f8
MOV EBX,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [EBP + 0xffffff58]
BSWAP EBX
ADD EAX,EBX
CMP byte ptr [EBP + 0xffffff47],0x0
MOV dword ptr [EBP + 0xffffff50],EAX
JZ 0x0021e5a5
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
MOV dword ptr [EBP + -0x30],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff48]
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00073b00
MOVZX EAX,byte ptr [ESI + 0xc]
ADD ESP,0x10
XOR EDI,EDI
AND EAX,0xf
CMP AL,0x3
JZ 0x0021e679
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff3c]
MOV dword ptr [EBP + -0x30],0x0
CALL 0x00073ca0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff58]
MOV dword ptr [EBP + -0x30],EBX
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff28]
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 EBX,dword ptr [EBP + 0xffffff38]
XOR EDX,EDX
ADD ESP,0x10
MOV dword ptr [EBP + -0x2c],EDX
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EBX + 0x4]
BSWAP EAX
MOV dword ptr [EBP + -0x30],EAX
CMP ECX,dword ptr [EBX + 0x8]
JZ 0x0021ed50
MOV dword ptr [ECX],EAX
ADD ECX,0x8
MOV dword ptr [ECX + -0x4],EDX
MOV dword ptr [EBX + 0x4],ECX
SUB ESP,0x8
LEA EAX,[EBP + -0x50]
MOV dword ptr [EBP + -0x50],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff24]
CALL 0x00074020
MOV EAX,EDI
ADD ESP,0x10
TEST AL,AL
JNZ 0x0021ebe8
ADD dword ptr [EBP + 0xffffff30],0x1
MOV EAX,dword ptr [EBP + 0xffffff30]
ADD dword ptr [EBP + 0x20],0xc
CMP dword ptr [EBP + 0x24],EAX
JZ 0x0021e6a0
MOV EAX,dword ptr [EBP + 0x20]
MOV EAX,dword ptr [EAX + 0x4]
BSWAP EAX
MOV EBX,EAX
MOVZX EAX,AL
MOV dword ptr [EBP + 0xffffff20],EAX
MOV EAX,dword ptr [EBP + 0x20]
SHR EBX,0x8
MOV EAX,dword ptr [EAX + 0x8]
BSWAP EAX
MOV dword ptr [EBP + 0xffffff58],EAX
CMP dword ptr [EBP + 0x30],EBX
JBE 0x0021e730
MOV ECX,dword ptr [EBP + 0x34]
TEST ECX,ECX
JZ 0x0021f083
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 + 0xffffff60],EAX
CMP EAX,0xfeff
JA 0x0021e4a0
MOV EBX,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [EBP + 0xffffff58]
BSWAP EBX
ADD EAX,EBX
CMP byte ptr [EBP + 0xffffff47],0x0
MOV dword ptr [EBP + 0xffffff50],EAX
JZ 0x0021ebe8
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x8
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff60]
MOV dword ptr [EBP + -0x2c],EAX
LEA EAX,[EBP + -0x30]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff48]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00073b00
MOVZX EAX,byte ptr [ESI + 0xc]
ADD ESP,0x10
MOV EDI,0x1
AND EAX,0xf
CMP AL,0x3
JNZ 0x0021e505
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff3c]
MOV dword ptr [EBP + -0x30],0xffffffff
CALL 0x00073ca0
JMP 0x0021e520
MOV EAX,dword ptr [EBP + -0x48]
CMP EAX,dword ptr [EBP + 0xffffff18]
JZ 0x0021e6bd
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff5c]
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 + 0xffffff18],EAX
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EBP + 0xffffff5c]
LEA EAX,[EAX + 0xffeb3b16]
PUSH EAX
PUSH EAX
PUSH EDX
CALL 0x00072b90
ADD ESP,0x10
JMP 0x0021e3ee
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0x30]
TEST EAX,EAX
JZ 0x0021ed70
SUB ESP,0x4
PUSH EBX
MOV EBX,dword ptr [EBP + 0xffffff5c]
PUSH dword ptr [EBP + 0x14]
PUSH EAX
CALL 0x0028b7d0
MOV dword ptr [EBP + 0xffffff60],EAX
ADD ESP,0x10
JMP 0x0021e61b
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0xb0]
CMP EBX,EAX
JC 0x0021ece8
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 + 0xffffff64],EAX
SUB EAX,EDX
SAR EAX,0x2
CMP EBX,EAX
JNC 0x0021f0c2
MOV EAX,dword ptr [EDX + EBX*0x4]
MOV dword ptr [EBP + -0x58],EAX
TEST EAX,EAX
JZ 0x0021ecef
TEST byte ptr [EAX + 0x2a],0x10
JNZ 0x0021ecc8
TEST byte ptr [EAX + 0x2a],0x7
JNZ 0x0021ec90
MOV EDI,dword ptr [EAX + 0x30]
MOV ECX,dword ptr [EBP + 0xffffff58]
MOV ESI,dword ptr [EAX + 0x8]
ADD ECX,EDI
MOV dword ptr [EBP + 0xffffff2c],EDI
MOV dword ptr [EBP + 0xffffff54],ESI
MOV dword ptr [EBP + 0xffffff50],ECX
TEST byte ptr [ESI + 0x2c],0x1
JNZ 0x0021ed10
MOVZX EBX,byte ptr [EAX + 0x2b]
MOVZX EDX,byte ptr [EAX + 0x28]
MOV ESI,dword ptr [EAX + 0xc]
SHR BL,0x5
AND EDX,0xf
AND EBX,0x1
MOV dword ptr [EBP + 0xffffff60],ESI
CMP DL,0x2
JNZ 0x0021e7e0
CMP byte ptr [EBP + 0xffffff46],0x0
JNZ 0x0021edf8
LEA ESI,[ESI]
MOV EAX,dword ptr [EAX]
MOV ESI,dword ptr [EBP + 0xffffff5c]
MOV ECX,0x8
LEA ESI,[ESI + 0xffe635da]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x0021eb80
ADD EAX,0x8
MOV dword ptr [EBP + 0xffffff40],EAX
CMP byte ptr [EBP + 0xffffff47],0x0
JZ 0x0021e8e8
TEST BL,BL
JNZ 0x0021ed30
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 + 0xffffff48]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00073b00
MOV EDI,dword ptr [EBP + 0xffffff3c]
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x4]
CMP EAX,dword ptr [EDI + 0x8]
JZ 0x0021edb8
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 + 0xffffff2c]
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff28]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff58]
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + -0x28],EAX
SAR EAX,0x1f
MOV dword ptr [EBP + -0x24],EAX
CALL 0x00073e70
MOV EAX,dword ptr [EBP + 0x20]
MOV EDI,dword ptr [EBP + 0xffffff38]
XOR EDX,EDX
ADD ESP,0x10
MOV dword ptr [EBP + -0x2c],EDX
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EDI + 0x4]
BSWAP EAX
MOV dword ptr [EBP + -0x30],EAX
CMP ECX,dword ptr [EDI + 0x8]
JZ 0x0021edd8
MOV dword ptr [ECX],EAX
ADD ECX,0x8
MOV dword ptr [ECX + -0x4],EDX
MOV dword ptr [EDI + 0x4],ECX
SUB ESP,0x8
LEA EAX,[EBP + -0x50]
MOV dword ptr [EBP + -0x50],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff24]
CALL 0x00074020
ADD ESP,0x10
TEST BL,BL
JZ 0x0021e5a5
MOV EAX,dword ptr [EBP + 0xffffff4c]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0021f0a4
CMP byte ptr [EAX + 0x18b1],0x0
JZ 0x0021e5a5
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 + 0xffffff54]
MOV dword ptr [EBP + -0x50],EAX
MOV EAX,dword ptr [EBP + 0xffffff60]
MOV dword ptr [EBP + -0x4c],EAX
MOV EAX,dword ptr [EDX + 0x18]
TEST EAX,EAX
JNZ 0x0021e95b
JMP 0x0021e980
JNZ 0x0021e952
MOV ESI,dword ptr [EAX + 0x14]
CMP dword ptr [EBP + 0x18],ESI
JA 0x0021e963
MOV ECX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0021e96a
MOV ESI,dword ptr [EAX + 0x10]
CMP dword ptr [EBP + 0x14],ESI
JBE 0x0021e948
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x0021e95b
CMP EBX,ECX
JZ 0x0021e980
MOV EAX,dword ptr [ECX + 0x10]
CMP dword ptr [EBP + 0x14],EAX
JC 0x0021e980
JNZ 0x0021e9a4
MOV EAX,dword ptr [ECX + 0x14]
CMP dword ptr [EBP + 0x18],EAX
JNC 0x0021e9a4
SUB ESP,0xc
LEA EBX,[EBP + -0x70]
LEA EAX,[EBP + -0x58]
ADD EDX,0x10
PUSH EBX
MOV dword ptr [EBP + -0x70],EAX
LEA EAX,[EBP + 0xffffff6c]
CALL 0x00212060
MOV ECX,dword ptr [EBP + 0xffffff6c]
ADD ESP,0x10
SUB ESP,0x8
ADD ECX,0x18
LEA EAX,[EBP + -0x50]
PUSH 0x1
PUSH 0x0
PUSH dword ptr [EBP + 0xffffff1c]
PUSH EAX
PUSH ECX
PUSH dword ptr [EBP + 0xffffff34]
MOV dword ptr [EBP + -0x74],ECX
CALL 0x00074340
MOV EAX,dword ptr [EBP + 0xffffff4c]
ADD ESP,0x1c
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0021f0e3
MOV EDX,dword ptr [EAX]
MOV EDI,dword ptr [EBP + 0xffffff5c]
MOV EDX,dword ptr [EDX + 0x104]
LEA ECX,[EDI + 0xffabbc40]
CMP EDX,ECX
JNZ 0x0021eb50
MOV EAX,dword ptr [EBP + 0xffffff40]
TEST EAX,EAX
JZ 0x0021e5a5
MOV EDX,dword ptr [EBP + 0xc]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff5c]
LEA ECX,[EBP + -0x28]
LEA EDI,[EBP + -0x30]
MOV dword ptr [EBP + 0xffffff60],ECX
MOV ESI,dword ptr [EDX + 0x158]
PUSH EAX
MOV dword ptr [EBP + 0xffffff64],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 + 0xffffff64]
PUSH EDI
CALL 0x00072b90
ADD ESP,0xc
LEA EAX,[EBP + 0xffffff68]
ADD ESI,0x44
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00094bd0
MOV ESI,dword ptr [EBP + 0xffffff68]
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0xc
CMP EAX,dword ptr [EBP + 0xffffff60]
JZ 0x0021ea85
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff5c]
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 0x0021e5a5
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 0x0021ead3
JMP 0x0021ebb8
JNZ 0x0021eaca
MOV EDI,dword ptr [EAX + 0x14]
CMP dword ptr [EBP + 0x18],EDI
JA 0x0021eadb
MOV ECX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0021eae2
MOV EDI,dword ptr [EAX + 0x10]
CMP dword ptr [EBP + 0x14],EDI
JBE 0x0021eac0
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x0021ead3
CMP ECX,EBX
JZ 0x0021ebb8
MOV EAX,dword ptr [ECX + 0x10]
CMP dword ptr [EBP + 0x14],EAX
JC 0x0021ebb8
JNZ 0x0021eb08
MOV EAX,dword ptr [ECX + 0x14]
CMP dword ptr [EBP + 0x18],EAX
JC 0x0021ebb8
LEA ESI,[ESI]
MOV EBX,dword ptr [ESI + 0x30]
LEA EDI,[EBP + -0x78]
LEA ESI,[ECX + 0x18]
TEST EBX,EBX
JZ 0x0021e5a5
LEA ESI,[ESI]
SUB ESP,0x8
LEA EAX,[EBX + 0x4]
MOV dword ptr [EBP + -0x78],ESI
PUSH 0x1
PUSH 0x0
PUSH EDI
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + 0xffffff34]
CALL 0x00074340
MOV EBX,dword ptr [EBX]
ADD ESP,0x1c
TEST EBX,EBX
JNZ 0x0021eb20
JMP 0x0021e5a5
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff50]
PUSH dword ptr [EBP + 0xffffff60]
PUSH dword ptr [EBP + 0xffffff54]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
CALL EDX
ADD ESP,0x20
JMP 0x0021e9f9
MOV ESI,dword ptr [EBP + 0xffffff5c]
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 + 0xffffff40]
MOV dword ptr [EBP + 0xffffff40],EAX
JMP 0x0021e80e
SUB ESP,0xc
LEA EBX,[EBP + -0x6c]
MOV EAX,dword ptr [EBP + 0xffffff64]
ADD EDX,0x10
PUSH EBX
MOV dword ptr [EBP + -0x6c],EAX
LEA EAX,[EBP + 0xffffff6c]
CALL 0x00212060
ADD ESP,0x10
MOV ECX,dword ptr [EBP + 0xffffff6c]
JMP 0x0021eb08
CMP byte ptr [EBP + 0xffffff46],0x0
JZ 0x0021ec70
MOVZX EAX,byte ptr [ESI + 0xc]
AND EAX,0xf
CMP AL,0x1
JZ 0x0021ec70
MOV EAX,dword ptr [EBP + 0xffffff4c]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0021f101
CMP byte ptr [EAX + 0x1a25],0x0
JZ 0x0021ed90
MOV EAX,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EBP + 0x14]
SUB ESP,0x8
MOV EAX,dword ptr [EAX + 0x15c]
MOV dword ptr [EBP + -0x68],EDX
LEA EDX,[EBP + -0x80]
MOV dword ptr [EBP + 0xffffff64],EAX
MOVZX EAX,word ptr [ESI + 0xe]
PUSH 0x1
ROL AX,0x8
PUSH 0x0
MOVZX EAX,AX
PUSH EDX
LEA EDX,[EBP + -0x68]
MOV dword ptr [EBP + -0x64],EAX
MOV EAX,dword ptr [EBP + 0xffffff64]
PUSH EDX
ADD EAX,0x34
PUSH EAX
PUSH dword ptr [EBP + 0xffffff34]
MOV dword ptr [EBP + -0x80],EAX
CALL 0x00074280
ADD ESP,0x1c
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0xffffff60]
CMP dword ptr [EBP + 0x18],EAX
JZ 0x0021e5a5
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + 0xffffff54],EAX
JMP 0x0021e8f0
MOV ESI,dword ptr [EAX + 0x30]
MOV EDI,dword ptr [EBP + 0xffffff58]
XOR EBX,EBX
MOV dword ptr [EBP + 0xffffff60],0x0
MOV dword ptr [EBP + 0xffffff54],0x0
ADD EDI,ESI
MOV dword ptr [EBP + 0xffffff2c],ESI
MOV dword ptr [EBP + 0xffffff50],EDI
JMP 0x0021e7e0
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff5c]
PUSH EAX
PUSH dword ptr [EBP + 0xc]
CALL 0x0034cd90
ADD ESP,0x10
MOV dword ptr [EBP + -0x58],EAX
JMP 0x0021e77d
MOV dword ptr [EBP + -0x58],0x0
MOV EBX,dword ptr [EBP + 0xffffff5c]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe9a498]
PUSH EAX
LEA EAX,[EBX + 0xffe635ca]
PUSH 0x11c
PUSH EAX
CALL 0x002446e0
MOV dword ptr [EBP + 0xffffff60],0x0
XOR EBX,EBX
MOV dword ptr [EBP + 0xffffff54],0x0
JMP 0x0021e7e0
MOV EAX,dword ptr [EBP + 0xffffff54]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff60]
MOV dword ptr [EBP + -0x2c],EAX
JMP 0x0021e831
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff64]
PUSH ECX
PUSH dword ptr [EBP + 0xffffff38]
CALL 0x00072a40
ADD ESP,0x10
JMP 0x0021e57f
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 EDX,dword ptr [EBP + 0x14]
ADD ESP,0x10
MOV dword ptr [EDX + 0x30],EAX
JMP 0x0021e706
MOV EAX,dword ptr [EBP + 0xffffff20]
SUB EAX,0x4
CMP EAX,0x36
JA 0x0021ec70
MOV EDI,dword ptr [EBP + 0xffffff5c]
MOV ECX,dword ptr [EDI + EAX*0x4 + 0xffe99fb8]
ADD ECX,EDI
JMP ECX
SUB ESP,0x4
LEA EDX,[EBP + -0x58]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff3c]
CALL 0x000726c0
ADD ESP,0x10
JMP 0x0021e86a
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff64]
PUSH ECX
PUSH dword ptr [EBP + 0xffffff38]
CALL 0x00072a40
ADD ESP,0x10
JMP 0x0021e8cc
TEST BL,BL
JZ 0x0021ee46
MOV ECX,dword ptr [EBP + 0xffffff4c]
MOV EDX,dword ptr [ECX]
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x0021f171
CMP byte ptr [EDX + 0x1a25],0x0
JNZ 0x0021ee40
MOV EDX,dword ptr [EBP + 0xffffff20]
SUB EDX,0x4
CMP EDX,0x36
JA 0x0021e7e0
MOV ESI,dword ptr [EBP + 0xffffff5c]
MOV ECX,dword ptr [ESI + EDX*0x4 + 0xffe9a094]
ADD ECX,ESI
JMP ECX
TEST byte ptr [EAX + 0x29],0x3
JZ 0x0021ee18
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0x8
LEA EDX,[EBP + -0x7c]
MOV EAX,dword ptr [EAX + 0x15c]
PUSH 0x1
PUSH 0x0
MOV dword ptr [EBP + 0xffffff64],EAX
MOV EAX,dword ptr [EBP + 0xffffff54]
PUSH EDX
LEA EDX,[EBP + -0x60]
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,dword ptr [EBP + 0xffffff60]
PUSH EDX
MOV dword ptr [EBP + -0x5c],EAX
MOV EAX,dword ptr [EBP + 0xffffff64]
ADD EAX,0x34
PUSH EAX
PUSH dword ptr [EBP + 0xffffff34]
MOV dword ptr [EBP + -0x7c],EAX
CALL 0x00074280
ADD ESP,0x1c
MOV EAX,dword ptr [EBP + -0x58]
JMP 0x0021e7e0
SUB ESP,0xc
PUSH dword ptr [EBP + 0x8]
CALL 0x0020d670
ADD ESP,0x10
MOV byte ptr [EBP + 0xffffff46],AL
TEST AL,AL
JZ 0x0021e467
MOV EDX,dword ptr [EBP + -0x48]
MOV EBX,dword ptr [EBP + 0xffffff5c]
MOV ECX,0xc
MOV byte ptr [EBP + 0xffffff46],0x0
LEA ESI,[EBX + 0xffe65db0]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0021e467
MOV ECX,0x11
LEA ESI,[EBX + 0xffe65dbd]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0021e467
MOV ECX,0xc
LEA ESI,[EBX + 0xffe65dcf]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0021e467
MOV ECX,0x11
LEA ESI,[EBX + 0xffe65ddc]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0021e467
MOV ECX,0x9
LEA ESI,[EBX + 0xffe65dee]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
SETNZ byte ptr [EBP + 0xffffff46]
JMP 0x0021e467
MOV ESI,dword ptr [EBP + -0x48]
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + 0xffffff60],EAX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,0xffffffff
TEST ESI,ESI
JZ 0x0021ef8c
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff5c]
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 + 0xffffff64],EAX
CALL 0x00072b90
MOV EDX,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + 0xffffff5c]
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 0x0021efdb
MOV ECX,0xf
LEA ESI,[EBX + 0xffe635ba]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0021f058
CMP EDX,dword ptr [EBP + 0xffffff60]
JNZ 0x0021f19a
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
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 + 0xffffff64],EAX
ADD EAX,0x54
PUSH EAX
CALL 0x00074520
LEA ECX,[EAX + 0xc]
LEA ESI,[EAX + 0x18]
MOV dword ptr [EBP + 0xffffff48],EAX
ADD ESP,0x10
LEA EDX,[EAX + 0x24]
ADD EAX,0x30
MOV dword ptr [EBP + 0xffffff3c],ECX
MOV dword ptr [EBP + 0xffffff24],EAX
MOV EAX,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + 0xffffff28],ESI
MOV dword ptr [EBP + 0xffffff38],EDX
MOV EAX,dword ptr [EAX]
MOV byte ptr [EBP + 0xffffff47],0x1
JMP 0x0021e448
CMP EDX,dword ptr [EBP + 0xffffff60]
JZ 0x0021f18d
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff5c]
PUSH EDX
CALL 0x003ae080
MOV EAX,dword ptr [EBP + 0xffffff4c]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
JMP 0x0021e40f
MOV EBX,dword ptr [EBP + 0xffffff5c]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe9a498]
PUSH EAX
LEA EAX,[EBX + 0xffe635ca]
PUSH 0xea
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff5c]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe9af88]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff5c]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe9a620]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x8ad
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff5c]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe9a670]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x73
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff5c]
PUSH EDX
LEA EAX,[EBX + 0xffe9af88]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff5c]
PUSH EAX
LEA EAX,[EBX + 0xffe9af88]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff5c]
PUSH ESI
LEA EAX,[EBX + 0xffe9af88]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff5c]
PUSH EAX
LEA EAX,[EBX + 0xffe9af88]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff5c]
PUSH EAX
LEA EAX,[EBX + 0xffe9af88]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EAX,dword ptr [EBP + 0xffffff4c]
MOV EAX,dword ptr [EAX]
JMP 0x0021e40f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff5c]
PUSH EDX
CALL 0x003ae080
ADD ESP,0x10
JMP 0x0021efe7
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_0021e380(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,uint param_5,\n                 int param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)\n\n{\n  code cVar1;\n  ushort uVar2;\n  undefined4 *puVar3;\n  byte *pbVar4;\n  int iVar5;\n  int *piVar6;\n  size_t sVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  code *extraout_EDX_06;\n  code *extraout_EDX_07;\n  byte bVar14;\n  uint uVar15;\n  code *pcVar16;\n  undefined1 *puVar17;\n  code **ppcVar18;\n  code *unaff_ESI;\n  int iVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  byte *pbVar22;\n  code *pcVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  ulonglong uVar29;\n  int iStack_f0;\n  code *local_ec;\n  code **local_e8;\n  uint local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  code *local_cc;\n  int local_c8;\n  byte *local_c4;\n  char local_be;\n  char local_bd;\n  int local_bc;\n  int *local_b8;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  undefined **local_a8;\n  code *local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [16];\n  code **local_84;\n  code **local_80;\n  code *local_7c;\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  undefined4 local_60;\n  code *local_5c;\n  uint local_58;\n  code *local_54;\n  undefined4 local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  uint local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  local_a8 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_b8 = &DAT_005ea7c8;\n  iVar19 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar19 = *local_b8;\n  pcVar16 = *(code **)(iVar19 + 8);\n  if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }\n  if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }\n  local_be = '\0';\n  if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }\n  uVar28 = CONCAT44(pcVar16,local_a4);\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0021e380(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,uint param_5,\n                 int param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)\n\n{\n  code cVar1;\n  ushort uVar2;\n  undefined4 *puVar3;\n  byte *pbVar4;\n  int iVar5;\n  int *piVar6;\n  size_t sVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  code *extraout_EDX_06;\n  code *extraout_EDX_07;\n  byte bVar14;\n  uint uVar15;\n  code *pcVar16;\n  undefined1 *puVar17;\n  code **ppcVar18;\n  code *unaff_ESI;\n  int iVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  byte *pbVar22;\n  code *pcVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  ulonglong uVar29;\n  int iStack_f0;\n  code *local_ec;\n  code **local_e8;\n  uint local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  code *local_cc;\n  int local_c8;\n  byte *local_c4;\n  char local_be;\n  char local_bd;\n  int local_bc;\n  int *local_b8;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  undefined **local_a8;\n  code *local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [16];\n  code **local_84;\n  code **local_80;\n  code *local_7c;\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  undefined4 local_60;\n  code *local_5c;\n  uint local_58;\n  code *local_54;\n  undefined4 local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  uint local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  local_a8 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_b8 = &DAT_005ea7c8;\n  iVar19 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar19 = *local_b8;\n  pcVar16 = *(code **)(iVar19 + 8);\n  if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }\n  if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }\n  local_be = '\0';\n  if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }\n  uVar28 = CONCAT44(pcVar16,local_a4);\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0021e380(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,uint param_5,\n                 int 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,code *param_4,uint param_5,\n                 int 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 "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type 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  code cVar1;\n  ushort uVar2;\n  undefined4 *puVar3;\n  byte *pbVar4;\n  int iVar5;\n  int *piVar6;\n  size_t sVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  code *extraout_EDX_06;\n  code *extraout_EDX_07;\n  byte bVar14;\n  uint uVar15;\n  code *pcVar16;\n  undefined1 *puVar17;\n  code **ppcVar18;\n  code *unaff_ESI;\n  int iVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  byte *pbVar22;\n  code *pcVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  ulonglong uVar29;\n  int iStack_f0;\n  code *local_ec;\n  code **local_e8;\n  uint local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  code *local_cc;\n  int local_c8;\n  byte *local_c4;\n  char local_be;\n  char local_bd;\n  int local_bc;\n  int *local_b8;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  undefined **local_a8;\n  code *local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [16];\n  code **local_84;\n  code **local_80;\n  code *local_7c;\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  undefined4 local_60;\n  code *local_5c;\n  uint local_58;\n  code *local_54;\n  undefined4 local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  uint local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  local_a8 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_b8 = &DAT_005ea7c8;\n  iVar19 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar19 = *local_b8;\n  pcVar16 = *(code **)(iVar19 + 8);\n  if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }\n  if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }\n  local_be = '\0';\n  if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }\n  uVar28 = CONCAT44(pcVar16,local_a4);\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }\n  return;\n}" { (declaration "code cVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "undefined4 extraout_EDX_01;" type_identifier identifier ;) (declaration "undefined **extraout_EDX_02;" type_identifier (pointer_declarator "**extraout_EDX_02" * (pointer_declarator "*extraout_EDX_02" * identifier)) ;) (declaration "int extraout_EDX_03;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX_04;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_05;" type_identifier identifier ;) (declaration "code *extraout_EDX_06;" type_identifier (pointer_declarator "*extraout_EDX_06" * identifier) ;) (declaration "code *extraout_EDX_07;" type_identifier (pointer_declarator "*extraout_EDX_07" * identifier) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code **ppcVar18;" type_identifier (pointer_declarator "**ppcVar18" * (pointer_declarator "*ppcVar18" * identifier)) ;) (declaration "code *unaff_ESI;" type_identifier (pointer_declarator "*unaff_ESI" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "undefined8 uVar28;" type_identifier identifier ;) (declaration "ulonglong uVar29;" type_identifier identifier ;) (declaration "int iStack_f0;" primitive_type identifier ;) (declaration "code *local_ec;" type_identifier (pointer_declarator "*local_ec" * identifier) ;) (declaration "code **local_e8;" type_identifier (pointer_declarator "**local_e8" * (pointer_declarator "*local_e8" * identifier)) ;) (declaration "uint local_e4;" type_identifier identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "code *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "code *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "undefined1 *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "code *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "char local_be;" primitive_type identifier ;) (declaration "char local_bd;" primitive_type identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int *local_b8;" primitive_type (pointer_declarator "*local_b8" * identifier) ;) (declaration "code *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "code *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "uint local_ac;" type_identifier identifier ;) (declaration "undefined **local_a8;" type_identifier (pointer_declarator "**local_a8" * (pointer_declarator "*local_a8" * identifier)) ;) (declaration "code *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "code **local_a0;" type_identifier (pointer_declarator "**local_a0" * (pointer_declarator "*local_a0" * identifier)) ;) (declaration "code *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "undefined1 local_94 [16];" type_identifier (array_declarator "local_94 [16]" identifier [ number_literal ]) ;) (declaration "code **local_84;" type_identifier (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier)) ;) (declaration "code **local_80;" type_identifier (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier)) ;) (declaration "code *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "code *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "code **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "code **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "code *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "code *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "code *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "code *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "code *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 "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = &__DT_PLTGOT;" (assignment_expression "local_a8 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (param_6 == 9) {\n    return;\n  }" if (parenthesized_expression "(param_6 == 9)" ( (binary_expression "param_6 == 9" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "local_b8 = &DAT_005ea7c8;" (assignment_expression "local_b8 = &DAT_005ea7c8" identifier = (pointer_expression "&DAT_005ea7c8" & identifier)) ;) (expression_statement "iVar19 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar19 = *(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 (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n    iStack_f0 = iVar19;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "iStack_f0 = iVar19;" (assignment_expression "iStack_f0 = iVar19" 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 *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }" if (parenthesized_expression "(*(int *)(iVar19 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar19 + 0x5934) == 0" (pointer_expression "*(int *)(iVar19 + 0x5934)" * (cast_expression "(int *)(iVar19 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x5934)" ( (binary_expression "iVar19 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }" { (expression_statement "local_ec = (code *)local_44;" (assignment_expression "local_ec = (code *)local_44" identifier = (cast_expression "(code *)local_44" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_f0 = 0;" (assignment_expression "iStack_f0 = 0" identifier = number_literal) ;) (expression_statement "local_4c[0] = local_ec;" (assignment_expression "local_4c[0] = local_ec" (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 "ppcVar18 = &local_ec;" (assignment_expression "ppcVar18 = &local_ec" identifier = (pointer_expression "&local_ec" & identifier)) ;) }) (else_clause "else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }" else (compound_statement "{\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }" { (expression_statement "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*(uint *)param_4 + 0x40))" ( (pointer_expression "**(code **)(*(uint *)param_4 + 0x40)" * (pointer_expression "*(code **)(*(uint *)param_4 + 0x40)" * (cast_expression "(code **)(*(uint *)param_4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(uint *)param_4 + 0x40)" ( (binary_expression "*(uint *)param_4 + 0x40" (pointer_expression "*(uint *)param_4" * (cast_expression "(uint *)param_4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(local_4c,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_ec = (code *)local_44;" (assignment_expression "local_ec = (code *)local_44" identifier = (cast_expression "(code *)local_44" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppcVar18 = (code **)&iStack_f0;" (assignment_expression "ppcVar18 = (code **)&iStack_f0" identifier = (cast_expression "(code **)&iStack_f0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&iStack_f0" & identifier))) ;) }))) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "pcVar16 = *(code **)(iVar19 + 8);" (assignment_expression "pcVar16 = *(code **)(iVar19 + 8)" identifier = (pointer_expression "*(code **)(iVar19 + 8)" * (cast_expression "(code **)(iVar19 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(pcVar16 == (code *)0x0)" ( (binary_expression "pcVar16 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }" { (expression_statement "*(int *)((int)ppcVar18 + -4) = iVar19;" (assignment_expression "*(int *)((int)ppcVar18 + -4) = iVar19" (pointer_expression "*(int *)((int)ppcVar18 + -4)" * (cast_expression "(int *)((int)ppcVar18 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }" if (parenthesized_expression "(*(uint *)(pcVar16 + 0x5934) == 0)" ( (binary_expression "*(uint *)(pcVar16 + 0x5934) == 0" (pointer_expression "*(uint *)(pcVar16 + 0x5934)" * (cast_expression "(uint *)(pcVar16 + 0x5934)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x5934)" ( (binary_expression "pcVar16 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }" { (labeled_statement "LAB_0021e40f:\n    local_bd = '\0';" statement_identifier : (expression_statement "local_bd = '\0';" (assignment_expression "local_bd = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_dc = (code *)0x0;" (assignment_expression "local_dc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }" else (compound_statement "{\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }" { (expression_statement "local_a4 = (code *)&local_2c;" (assignment_expression "local_a4 = (code *)&local_2c" identifier = (cast_expression "(code *)&local_2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "local_34 = local_a4;" (assignment_expression "local_34 = local_a4" identifier = identifier) ;) (expression_statement "pcVar16 = (code *)0xffffffff;" (assignment_expression "pcVar16 = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }" if (parenthesized_expression "(local_4c[0] != (code *)0x0)" ( (binary_expression "local_4c[0] != (code *)0x0" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }" { (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));" (assignment_expression "sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)ppcVar18 + -0x10))" identifier (argument_list "(*(char **)((int)ppcVar18 + -0x10))" ( (pointer_expression "*(char **)((int)ppcVar18 + -0x10)" * (cast_expression "(char **)((int)ppcVar18 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar16 = pcVar21 + sVar7;" (assignment_expression "pcVar16 = pcVar21 + sVar7" identifier = (binary_expression "pcVar21 + sVar7" identifier + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)ppcVar18 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -4)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(code **)((int)ppcVar18 + -8) = pcVar16;" (assignment_expression "*(code **)((int)ppcVar18 + -8) = pcVar16" (pointer_expression "*(code **)((int)ppcVar18 + -8)" * (cast_expression "(code **)((int)ppcVar18 + -8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code **)((int)ppcVar18 + -0xc) = pcVar21;" (assignment_expression "*(code **)((int)ppcVar18 + -0xc) = pcVar21" (pointer_expression "*(code **)((int)ppcVar18 + -0xc)" * (cast_expression "(code **)((int)ppcVar18 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0x10) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x10) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0x10)" * (cast_expression "(code ***)((int)ppcVar18 + -0x10)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar19 = 5;" (assignment_expression "iVar19 = 5" identifier = number_literal) ;) (expression_statement "bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);" (assignment_expression "bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)ppcVar18 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar26 = ppcVar18 == (code **)0x0;" (assignment_expression "bVar26 = ppcVar18 == (code **)0x0" identifier = (binary_expression "ppcVar18 == (code **)0x0" identifier == (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "ppuVar13 = local_a8 + -0x67293;" (assignment_expression "ppuVar13 = local_a8 + -0x67293" identifier = (binary_expression "local_a8 + -0x67293" identifier + number_literal)) ;) (expression_statement "pcVar16 = local_34;" (assignment_expression "pcVar16 = local_34" identifier = identifier) ;) (do_statement "do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);" do (compound_statement "{\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;" (assignment_expression "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar16" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar16" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar26 = *(code *)ppuVar13 == *pcVar16;" (assignment_expression "bVar26 = *(code *)ppuVar13 == *pcVar16" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar16" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar16" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar16 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar16 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }" { (expression_statement "iVar19 = 0xf;" (assignment_expression "iVar19 = 0xf" identifier = number_literal) ;) (expression_statement "pcVar16 = (code *)((int)local_a8 + -0x19ca46);" (assignment_expression "pcVar16 = (code *)((int)local_a8 + -0x19ca46)" identifier = (cast_expression "(code *)((int)local_a8 + -0x19ca46)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19ca46)" ( (binary_expression "(int)local_a8 + -0x19ca46" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar21 = local_34;" (assignment_expression "pcVar21 = local_34" identifier = identifier) ;) (do_statement "do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);" do (compound_statement "{\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      }" { (expression_statement "unaff_ESI = pcVar16;" (assignment_expression "unaff_ESI = pcVar16" identifier = identifier) ;) (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;" (assignment_expression "unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar16 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar16 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar16 < (byte)*pcVar21;" (assignment_expression "bVar25 = (byte)*pcVar16 < (byte)*pcVar21" identifier = (binary_expression "(byte)*pcVar16 < (byte)*pcVar21" (binary_expression "(byte)*pcVar16" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *pcVar16 == *pcVar21;" (assignment_expression "bVar24 = *pcVar16 == *pcVar21" identifier = (binary_expression "*pcVar16 == *pcVar21" (pointer_expression "*pcVar16" * identifier) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "pcVar16 = unaff_ESI;" (assignment_expression "pcVar16 = unaff_ESI" identifier = identifier) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }" if (parenthesized_expression "((!bVar25 && !bVar24) != bVar25)" ( (binary_expression "(!bVar25 && !bVar24) != bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }" { (if_statement "if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }" if (parenthesized_expression "(local_34 == local_a4)" ( (binary_expression "local_34 == local_a4" identifier == identifier) )) (compound_statement "{\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }" { (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "pcVar16 = local_34;" (assignment_expression "pcVar16 = local_34" identifier = identifier) ;) }) (else_clause "else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }" else (compound_statement "{\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }" { (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_34;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_34" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "pcVar16 = extraout_EDX_07;" (assignment_expression "pcVar16 = extraout_EDX_07" identifier = identifier) ;) }))) (goto_statement "goto LAB_0021e40f;" goto statement_identifier ;) })) })) (if_statement "if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_34 != local_a4)" ( (binary_expression "local_34 != local_a4" identifier != identifier) )) (compound_statement "{\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }" { (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_34;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_34" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (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_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" 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 "*(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15" (pointer_expression "*(code ***)((int)ppcVar18 + -0x10)" * (cast_expression "(code ***)((int)ppcVar18 + -0x10)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a0 + 0x15" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_bc = FUN_00074520();" (assignment_expression "local_bc = FUN_00074520()" identifier = (call_expression "FUN_00074520()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_c8 = local_bc + 0xc;" (assignment_expression "local_c8 = local_bc + 0xc" identifier = (binary_expression "local_bc + 0xc" identifier + number_literal)) ;) (expression_statement "unaff_ESI = (code *)(local_bc + 0x18);" (assignment_expression "unaff_ESI = (code *)(local_bc + 0x18)" identifier = (cast_expression "(code *)(local_bc + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0x18)" ( (binary_expression "local_bc + 0x18" identifier + number_literal) )))) ;) (expression_statement "pcVar16 = (code *)(local_bc + 0x24);" (assignment_expression "pcVar16 = (code *)(local_bc + 0x24)" identifier = (cast_expression "(code *)(local_bc + 0x24)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0x24)" ( (binary_expression "local_bc + 0x24" identifier + number_literal) )))) ;) (expression_statement "local_e0 = local_bc + 0x30;" (assignment_expression "local_e0 = local_bc + 0x30" identifier = (binary_expression "local_bc + 0x30" identifier + number_literal)) ;) (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "local_bd = '\x01';" (assignment_expression "local_bd = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_dc = unaff_ESI;" (assignment_expression "local_dc = unaff_ESI" identifier = identifier) ;) (expression_statement "local_cc = pcVar16;" (assignment_expression "local_cc = pcVar16" identifier = identifier) ;) }))) (if_statement "if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar19 + 8) == 0)" ( (binary_expression "*(int *)(iVar19 + 8) == 0" (pointer_expression "*(int *)(iVar19 + 8)" * (cast_expression "(int *)(iVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }" { (expression_statement "*(code **)((int)ppcVar18 + -4) = unaff_ESI;" (assignment_expression "*(code **)((int)ppcVar18 + -4) = unaff_ESI" (pointer_expression "*(code **)((int)ppcVar18 + -4)" * (cast_expression "(code **)((int)ppcVar18 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_be = '\0';" (assignment_expression "local_be = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2)" ( (binary_expression "*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar19 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar19 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar19 + 8) + 0x5934" (pointer_expression "*(int *)(iVar19 + 8)" * (cast_expression "(int *)(iVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x10) = param_1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x10)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_be = FUN_0020d670();" (assignment_expression "local_be = FUN_0020d670()" identifier = (call_expression "FUN_0020d670()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = local_be == '\0';" (assignment_expression "bVar26 = local_be == '\0'" identifier = (binary_expression "local_be == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "pcVar16 = extraout_EDX_06;" (assignment_expression "pcVar16 = extraout_EDX_06" identifier = identifier) ;) (if_statement "if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "local_be = '\0';" (assignment_expression "local_be = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppuVar13 = local_a8 + -0x66894;" (assignment_expression "ppuVar13 = local_a8 + -0x66894" identifier = (binary_expression "local_a8 + -0x66894" identifier + number_literal)) ;) (expression_statement "pcVar16 = local_4c[0];" (assignment_expression "pcVar16 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;" (assignment_expression "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar16" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar16" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar26 = *(code *)ppuVar13 == *pcVar16;" (assignment_expression "bVar26 = *(code *)ppuVar13 == *pcVar16" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar16" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar16" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar16 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar16 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (expression_statement "pcVar16 = local_4c[0];" (assignment_expression "pcVar16 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (if_statement "if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }" { (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" identifier = number_literal) ;) (expression_statement "pcVar21 = (code *)((int)local_a8 + -0x19a243);" (assignment_expression "pcVar21 = (code *)((int)local_a8 + -0x19a243)" identifier = (cast_expression "(code *)((int)local_a8 + -0x19a243)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19a243)" ( (binary_expression "(int)local_a8 + -0x19a243" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar23 = local_4c[0];" (assignment_expression "pcVar23 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar21 < (byte)*pcVar23;" (assignment_expression "bVar25 = (byte)*pcVar21 < (byte)*pcVar23" identifier = (binary_expression "(byte)*pcVar21 < (byte)*pcVar23" (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar23" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *pcVar21 == *pcVar23;" (assignment_expression "bVar24 = *pcVar21 == *pcVar23" identifier = (binary_expression "*pcVar21 == *pcVar23" (pointer_expression "*pcVar21" * identifier) == (pointer_expression "*pcVar23" * identifier))) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar23 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar23 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }" { (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "pcVar21 = (code *)((int)local_a8 + -0x19a231);" (assignment_expression "pcVar21 = (code *)((int)local_a8 + -0x19a231)" identifier = (cast_expression "(code *)((int)local_a8 + -0x19a231)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19a231)" ( (binary_expression "(int)local_a8 + -0x19a231" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar23 = local_4c[0];" (assignment_expression "pcVar23 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = (byte)*pcVar21 < (byte)*pcVar23;" (assignment_expression "bVar26 = (byte)*pcVar21 < (byte)*pcVar23" identifier = (binary_expression "(byte)*pcVar21 < (byte)*pcVar23" (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar23" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *pcVar21 == *pcVar23;" (assignment_expression "bVar24 = *pcVar21 == *pcVar23" identifier = (binary_expression "*pcVar21 == *pcVar23" (pointer_expression "*pcVar21" * identifier) == (pointer_expression "*pcVar23" * identifier))) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar23 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar23 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar26 && !bVar24) == bVar26;" (assignment_expression "bVar24 = (!bVar26 && !bVar24) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar24) == bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" ( (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }" { (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" identifier = number_literal) ;) (expression_statement "ppuVar13 = local_a8 + -0x66889;" (assignment_expression "ppuVar13 = local_a8 + -0x66889" identifier = (binary_expression "local_a8 + -0x66889" identifier + number_literal)) ;) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);" do (compound_statement "{\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;" (assignment_expression "bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar21" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *(code *)ppuVar13 == *pcVar21;" (assignment_expression "bVar24 = *(code *)ppuVar13 == *pcVar21" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar21" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }" { (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" identifier = number_literal) ;) (expression_statement "pcVar21 = (code *)((int)local_a8 + -0x19a212);" (assignment_expression "pcVar21 = (code *)((int)local_a8 + -0x19a212)" identifier = (cast_expression "(code *)((int)local_a8 + -0x19a212)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19a212)" ( (binary_expression "(int)local_a8 + -0x19a212" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar23 = local_4c[0];" (assignment_expression "pcVar23 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);" do (compound_statement "{\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = (byte)*pcVar21 < (byte)*pcVar23;" (assignment_expression "bVar26 = (byte)*pcVar21 < (byte)*pcVar23" identifier = (binary_expression "(byte)*pcVar21 < (byte)*pcVar23" (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar23" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *pcVar21 == *pcVar23;" (assignment_expression "bVar24 = *pcVar21 == *pcVar23" identifier = (binary_expression "*pcVar21 == *pcVar23" (pointer_expression "*pcVar21" * identifier) == (pointer_expression "*pcVar23" * identifier))) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar23 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar23 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "local_be = (!bVar26 && !bVar24) != bVar26;" (assignment_expression "local_be = (!bVar26 && !bVar24) != bVar26" identifier = (binary_expression "(!bVar26 && !bVar24) != bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" ( (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier)) ;) })) })) })) })) })) })) (expression_statement "uVar28 = CONCAT44(pcVar16,local_a4);" (assignment_expression "uVar28 = CONCAT44(pcVar16,local_a4)" identifier = (call_expression "CONCAT44(pcVar16,local_a4)" identifier (argument_list "(pcVar16,local_a4)" ( identifier , identifier )))) ;) (if_statement "if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" { (expression_statement "local_c4 = (byte *)0x0;" (assignment_expression "local_c4 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = local_94;" (assignment_expression "local_d0 = local_94" identifier = identifier) ;) (expression_statement "local_e8 = &local_78;" (assignment_expression "local_e8 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);" do (compound_statement "{\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    }" { (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar8 = param_7[1];" (assignment_expression "uVar8 = param_7[1]" identifier = (subscript_expression "param_7[1]" identifier [ number_literal ])) ;) (expression_statement "local_e4 = uVar8 >> 0x18;" (assignment_expression "local_e4 = uVar8 >> 0x18" identifier = (binary_expression "uVar8 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;" (assignment_expression "uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8" identifier = (binary_expression "((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8" (parenthesized_expression "((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18)" ( (binary_expression "(uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "(uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal)) )) >> number_literal)) ;) (expression_statement "uVar8 = param_7[2];" (assignment_expression "uVar8 = param_7[2]" identifier = (subscript_expression "param_7[2]" identifier [ number_literal ])) ;) (expression_statement "local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" identifier = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }" if (parenthesized_expression "(uVar15 < param_11)" ( (binary_expression "uVar15 < param_11" identifier < identifier) )) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(param_12 == 0)" ( (binary_expression "param_12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x596da" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x19ca36" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar19 = uVar15 * 0x10 + param_12;" (assignment_expression "iVar19 = uVar15 * 0x10 + param_12" identifier = (binary_expression "uVar15 * 0x10 + param_12" (binary_expression "uVar15 * 0x10" identifier * number_literal) + identifier)) ;) (expression_statement "local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);" (assignment_expression "local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" identifier = (cast_expression "(code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" ( (binary_expression "*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8" (binary_expression "*(ushort *)(iVar19 + 0xe) << 8" (pointer_expression "*(ushort *)(iVar19 + 0xe)" * (cast_expression "(ushort *)(iVar19 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xe)" ( (binary_expression "iVar19 + 0xe" identifier + number_literal) )))) << number_literal) | (binary_expression "*(ushort *)(iVar19 + 0xe) >> 8" (pointer_expression "*(ushort *)(iVar19 + 0xe)" * (cast_expression "(ushort *)(iVar19 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xe)" ( (binary_expression "iVar19 + 0xe" identifier + number_literal) )))) >> number_literal)) ))))) ;) (expression_statement "uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);" (assignment_expression "uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4)" identifier = (call_expression "CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4)" identifier (argument_list "((int)((ulonglong)uVar28 >> 0x20),local_a4)" ( (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (if_statement "if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }" if (parenthesized_expression "(local_a4 < 0xff00)" ( (binary_expression "local_a4 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }" { (labeled_statement "LAB_0021e61b:\n          local_a4 = (code *)uVar28;" statement_identifier : (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "uVar8 = *(uint *)(iVar19 + 4);" (assignment_expression "uVar8 = *(uint *)(iVar19 + 4)" identifier = (pointer_expression "*(uint *)(iVar19 + 4)" * (cast_expression "(uint *)(iVar19 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 4)" ( (binary_expression "iVar19 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);" (assignment_expression "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" identifier = (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" ( (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "local_b4 = pcVar16 + local_ac;" (assignment_expression "local_b4 = pcVar16 + local_ac" identifier = (binary_expression "pcVar16 + local_ac" identifier + identifier)) ;) (if_statement "if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }" if (parenthesized_expression "(local_bd != '\0')" ( (binary_expression "local_bd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }" { (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = (uint)local_a4;" (assignment_expression "local_30 = (uint)local_a4" identifier = (cast_expression "(uint)local_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_bc;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_bc" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (if_statement "if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;" if (parenthesized_expression "((*(byte *)(iVar19 + 0xc) & 0xf) != 3)" ( (binary_expression "(*(byte *)(iVar19 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(iVar19 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar19 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar19 + 0xc)" * (cast_expression "(byte *)(iVar19 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0021e505;" goto statement_identifier ;)) (labeled_statement "LAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_c8" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (code *)0xffffffff;" (assignment_expression "local_34 = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0021e520;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }" else (compound_statement "{\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }" { (if_statement "if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }" if (parenthesized_expression "(local_a4 == (code *)0xffff)" ( (binary_expression "local_a4 == (code *)0xffff" identifier == (cast_expression "(code *)0xffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }" { (expression_statement "uVar8 = *(uint *)(param_4 + 0x30);" (assignment_expression "uVar8 = *(uint *)(param_4 + 0x30)" identifier = (pointer_expression "*(uint *)(param_4 + 0x30)" * (cast_expression "(uint *)(param_4 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }" { (expression_statement "uVar8 = *(uint *)param_4;" (assignment_expression "uVar8 = *(uint *)param_4" identifier = (pointer_expression "*(uint *)param_4" * (cast_expression "(uint *)param_4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = param_4;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = param_4" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar16 = *(code **)(uVar8 + 0x6c);" (assignment_expression "pcVar16 = *(code **)(uVar8 + 0x6c)" identifier = (pointer_expression "*(code **)(uVar8 + 0x6c)" * (cast_expression "(code **)(uVar8 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + 0x6c)" ( (binary_expression "uVar8 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = (*pcVar16)();" (assignment_expression "uVar8 = (*pcVar16)()" identifier = (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(param_4 + 0x30) = uVar8;" (assignment_expression "*(uint *)(param_4 + 0x30) = uVar8" (pointer_expression "*(uint *)(param_4 + 0x30)" * (cast_expression "(uint *)(param_4 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(uint *)((int)ppcVar18 + -8) = uVar15;" (assignment_expression "*(uint *)((int)ppcVar18 + -8) = uVar15" (pointer_expression "*(uint *)((int)ppcVar18 + -8)" * (cast_expression "(uint *)((int)ppcVar18 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)ppcVar18 + -0xc) = param_4;" (assignment_expression "*(code **)((int)ppcVar18 + -0xc) = param_4" (pointer_expression "*(code **)((int)ppcVar18 + -0xc)" * (cast_expression "(code **)((int)ppcVar18 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)ppcVar18 + -0x10) = uVar8;" (assignment_expression "*(uint *)((int)ppcVar18 + -0x10) = uVar8" (pointer_expression "*(uint *)((int)ppcVar18 + -0x10)" * (cast_expression "(uint *)((int)ppcVar18 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar28 = FUN_0028b7d0();" (assignment_expression "uVar28 = FUN_0028b7d0()" identifier = (call_expression "FUN_0028b7d0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0021e61b;" goto statement_identifier ;) })) (expression_statement "uVar8 = *(uint *)(iVar19 + 4);" (assignment_expression "uVar8 = *(uint *)(iVar19 + 4)" identifier = (pointer_expression "*(uint *)(iVar19 + 4)" * (cast_expression "(uint *)(iVar19 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 4)" ( (binary_expression "iVar19 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);" (assignment_expression "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" identifier = (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" ( (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "local_b4 = pcVar16 + local_ac;" (assignment_expression "local_b4 = pcVar16 + local_ac" identifier = (binary_expression "pcVar16 + local_ac" identifier + identifier)) ;) (if_statement "if (local_bd == '\0') goto LAB_0021e5a5;" if (parenthesized_expression "(local_bd == '\0')" ( (binary_expression "local_bd == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0021e5a5;" goto statement_identifier ;)) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_bc;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_bc" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (if_statement "if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;" if (parenthesized_expression "((*(byte *)(iVar19 + 0xc) & 0xf) == 3)" ( (binary_expression "(*(byte *)(iVar19 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(iVar19 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar19 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar19 + 0xc)" * (cast_expression "(byte *)(iVar19 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0021e679;" goto statement_identifier ;)) (labeled_statement "LAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_c8" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_dc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" identifier = (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = pcVar16;" (assignment_expression "local_34 = pcVar16" identifier = identifier) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = *param_7;" (assignment_expression "uVar8 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "puVar3 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_cc + 4)" identifier = (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);" (assignment_expression "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" identifier = (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" ( (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" if (parenthesized_expression "(puVar3 == *(undefined4 **)(local_cc + 8))" ( (binary_expression "puVar3 == *(undefined4 **)(local_cc + 8)" identifier == (pointer_expression "*(undefined4 **)(local_cc + 8)" * (cast_expression "(undefined4 **)(local_cc + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 8)" ( (binary_expression "local_cc + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }" { (expression_statement "*(code ***)((int)ppcVar18 + -8) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -8) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -8)" * (cast_expression "(code ***)((int)ppcVar18 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;" (assignment_expression "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3" (pointer_expression "*(undefined4 **)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 **)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_cc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_cc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" else (compound_statement "{\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" { (expression_statement "*puVar3 = local_34;" (assignment_expression "*puVar3 = local_34" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar3 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar3 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) )))) = (binary_expression "puVar3 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_e0" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar28 = CONCAT44(extraout_EDX,local_a4);" (assignment_expression "uVar28 = CONCAT44(extraout_EDX,local_a4)" identifier = (call_expression "CONCAT44(extraout_EDX,local_a4)" identifier (argument_list "(extraout_EDX,local_a4)" ( identifier , identifier )))) ;) (if_statement "if (!bVar24) goto LAB_0021e5a5;" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (goto_statement "goto LAB_0021e5a5;" goto statement_identifier ;)) }))) (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }" if (parenthesized_expression "((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1))" ( (binary_expression "(local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)" (parenthesized_expression "(local_be != '\0')" ( (binary_expression "local_be != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)(iVar19 + 0xc) & 0xf) != 1)" ( (binary_expression "(*(byte *)(iVar19 + 0xc) & 0xf) != 1" (parenthesized_expression "(*(byte *)(iVar19 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar19 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar19 + 0xc)" * (cast_expression "(byte *)(iVar19 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }" { (if_statement "if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(*local_b8 + 8) == 0)" ( (binary_expression "*(int *)(*local_b8 + 8) == 0" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }" { (expression_statement "*(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);" (assignment_expression "*(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20)" (pointer_expression "*(int *)((int)ppcVar18 + -4)" * (cast_expression "(int *)((int)ppcVar18 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_b8 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*local_b8 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }" { (if_statement "if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }" if (parenthesized_expression "(local_e4 - 4 < 0x37)" ( (binary_expression "local_e4 - 4 < 0x37" (binary_expression "local_e4 - 4" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }" { comment comment (expression_statement "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();" (call_expression "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))()" (parenthesized_expression "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))" ( (pointer_expression "*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8)" * (cast_expression "(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8[local_e4 - 0x59816] + (int)local_a8)" ( (binary_expression "local_a8[local_e4 - 0x59816] + (int)local_a8" (subscript_expression "local_a8[local_e4 - 0x59816]" identifier [ (binary_expression "local_e4 - 0x59816" identifier - number_literal) ]) + (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }" else (compound_statement "{\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }" { (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" 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 "local_6c = param_4;" (assignment_expression "local_6c = param_4" identifier = identifier) ;) (expression_statement "uVar2 = *(ushort *)(iVar19 + 0xe);" (assignment_expression "uVar2 = *(ushort *)(iVar19 + 0xe)" identifier = (pointer_expression "*(ushort *)(iVar19 + 0xe)" * (cast_expression "(ushort *)(iVar19 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xe)" ( (binary_expression "iVar19 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x10)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);" (assignment_expression "local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8)" identifier = (call_expression "(uint)(ushort)(uVar2 << 8 | uVar2 >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(uVar2 << 8 | uVar2 >> 8)" ( (binary_expression "uVar2 << 8 | uVar2 >> 8" (binary_expression "uVar2 << 8" identifier << number_literal) | (binary_expression "uVar2 >> 8" identifier >> number_literal)) )))) ;) (expression_statement "*(code ****)((int)ppcVar18 + -0x14) = &local_84;" (assignment_expression "*(code ****)((int)ppcVar18 + -0x14) = &local_84" (pointer_expression "*(code ****)((int)ppcVar18 + -0x14)" * (cast_expression "(code ****)((int)ppcVar18 + -0x14)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_84" & identifier)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0x18) = &local_6c;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x18) = &local_6c" (pointer_expression "*(code ***)((int)ppcVar18 + -0x18)" * (cast_expression "(code ***)((int)ppcVar18 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x18)" ( (binary_expression "(int)ppcVar18 + -0x18" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "local_84 = local_a0 + 0xd;" (assignment_expression "local_84 = local_a0 + 0xd" identifier = (binary_expression "local_a0 + 0xd" identifier + number_literal)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0x1c) = local_84;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x1c) = local_84" (pointer_expression "*(code ***)((int)ppcVar18 + -0x1c)" * (cast_expression "(code ***)((int)ppcVar18 + -0x1c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x1c)" ( (binary_expression "(int)ppcVar18 + -0x1c" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)ppcVar18 + -0x20)" * (cast_expression "(undefined1 **)((int)ppcVar18 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x20)" ( (binary_expression "(int)ppcVar18 + -0x20" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x24)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x24)" ( (binary_expression "(int)ppcVar18 + -0x24" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar28 = CONCAT44(extraout_EDX_04,local_a4);" (assignment_expression "uVar28 = CONCAT44(extraout_EDX_04,local_a4)" identifier = (call_expression "CONCAT44(extraout_EDX_04,local_a4)" identifier (argument_list "(extraout_EDX_04,local_a4)" ( identifier , identifier )))) ;) (expression_statement "ppcVar18 = (code **)((int)ppcVar18 + -4);" (assignment_expression "ppcVar18 = (code **)((int)ppcVar18 + -4)" identifier = (cast_expression "(code **)((int)ppcVar18 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })) (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((code *)param_5 != local_a4)" ( (binary_expression "(code *)param_5 != local_a4" (cast_expression "(code *)param_5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_b0 = param_4;" (assignment_expression "local_b0 = param_4" identifier = identifier) ;) (expression_statement "puVar17 = (undefined1 *)ppcVar18;" (assignment_expression "puVar17 = (undefined1 *)ppcVar18" identifier = (cast_expression "(undefined1 *)ppcVar18" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0021e8f0:\n          local_a4 = (code *)uVar28;" statement_identifier : (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(*local_b8 + 8) == 0)" ( (binary_expression "*(int *)(*local_b8 + 8) == 0" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x21f0c2" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppcVar18 = (code **)puVar17;" (assignment_expression "ppcVar18 = (code **)puVar17" identifier = (cast_expression "(code **)puVar17" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*local_b8 + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_b8 + 8) + 0x18b1)" ( (binary_expression "*(int *)(*local_b8 + 8) + 0x18b1" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }" { (expression_statement "local_5c = param_4;" (assignment_expression "local_5c = param_4" identifier = identifier) ;) (expression_statement "iVar19 = *(int *)(param_2 + 0x158) + 0x14;" (assignment_expression "iVar19 = *(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_b0;" (assignment_expression "local_54 = local_b0" identifier = identifier) ;) (expression_statement "local_50 = local_a4;" (assignment_expression "local_50 = local_a4" identifier = identifier) ;) (expression_statement "iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "iVar5 = *(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 "iVar9 = iVar19;" (assignment_expression "iVar9 = iVar19" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }" { (labeled_statement "LAB_0021e980:\n              local_74 = &local_5c;" statement_identifier : (expression_statement "local_74 = &local_5c;" (assignment_expression "local_74 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;)) (expression_statement "*(code ****)(puVar17 + -0x10) = &local_74;" (assignment_expression "*(code ****)(puVar17 + -0x10) = &local_74" (pointer_expression "*(code ****)(puVar17 + -0x10)" * (cast_expression "(code ****)(puVar17 + -0x10)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_74" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x21e99b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x21e99b" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00212060();" (call_expression "FUN_00212060()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }" else (compound_statement "{\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }" { (do_statement "do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);" do (compound_statement "{\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              }" { (while_statement "while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }" while (parenthesized_expression "((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))))" ( (parenthesized_expression "(iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))" ( (comma_expression "iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar5" identifier = identifier) , (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))" ( (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" identifier != (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" 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 "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }" { (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(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_0021e96a;" 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_0021e96a;" goto statement_identifier ;)) })) (expression_statement "piVar6 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar6 = (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 "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar6 != 0)" ( (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" * identifier) != number_literal) )) ;) (labeled_statement "LAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;" statement_identifier : (if_statement "if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;" if (parenthesized_expression "(((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))" ( (binary_expression "((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))))" (parenthesized_expression "((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10)))" ( (binary_expression "(iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar19 == iVar10)" ( (binary_expression "iVar19 == iVar10" identifier == identifier) )) || (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" ( (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" identifier < (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))" ( (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" identifier == (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" 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 "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_0021e980;" goto statement_identifier ;))) }))) (expression_statement "local_78 = (code *)(iVar10 + 0x18);" (assignment_expression "local_78 = (code *)(iVar10 + 0x18)" identifier = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(code ***)(puVar17 + -0x14) = local_e8;" (assignment_expression "*(code ***)(puVar17 + -0x14) = local_e8" (pointer_expression "*(code ***)(puVar17 + -0x14)" * (cast_expression "(code ***)(puVar17 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)(puVar17 + -0x18) = &local_54;" (assignment_expression "*(code ***)(puVar17 + -0x18) = &local_54" (pointer_expression "*(code ***)(puVar17 + -0x18)" * (cast_expression "(code ***)(puVar17 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(code **)(puVar17 + -0x1c) = local_78;" (assignment_expression "*(code **)(puVar17 + -0x1c) = local_78" (pointer_expression "*(code **)(puVar17 + -0x1c)" * (cast_expression "(code **)(puVar17 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" * (cast_expression "(undefined1 **)(puVar17 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x21e9c7" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" * (cast_expression "(undefined4 *)(puVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x24)" ( (binary_expression "puVar17 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(*local_b8 + 0xc);" (assignment_expression "piVar6 = *(int **)(*local_b8 + 0xc)" identifier = (pointer_expression "*(int **)(*local_b8 + 0xc)" * (cast_expression "(int **)(*local_b8 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_b8 + 0xc)" ( (binary_expression "*local_b8 + 0xc" (pointer_expression "*local_b8" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }" { (expression_statement "*(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;" (assignment_expression "*(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664" (pointer_expression "*(undefined ***)(puVar17 + -0xc)" * (cast_expression "(undefined ***)(puVar17 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = (binary_expression "local_a8 + -0x59664" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x14)" * (cast_expression "(int *)(puVar17 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21f101;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21f101" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" * (cast_expression "(undefined4 *)(puVar17 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppuVar13 = *(undefined ***)(*piVar6 + 0x104);" (assignment_expression "ppuVar13 = *(undefined ***)(*piVar6 + 0x104)" identifier = (pointer_expression "*(undefined ***)(*piVar6 + 0x104)" * (cast_expression "(undefined ***)(*piVar6 + 0x104)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar6 + 0x104)" ( (binary_expression "*piVar6 + 0x104" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" if (parenthesized_expression "(ppuVar13 != local_a8 + -0x1510f0)" ( (binary_expression "ppuVar13 != local_a8 + -0x1510f0" identifier != (binary_expression "local_a8 + -0x1510f0" identifier + number_literal)) )) (compound_statement "{\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" { (expression_statement "*(code **)(puVar17 + -0xc) = local_b4;" (assignment_expression "*(code **)(puVar17 + -0xc) = local_b4" (pointer_expression "*(code **)(puVar17 + -0xc)" * (cast_expression "(code **)(puVar17 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar17 + -0x10) = local_a4;" (assignment_expression "*(code **)(puVar17 + -0x10) = local_a4" (pointer_expression "*(code **)(puVar17 + -0x10)" * (cast_expression "(code **)(puVar17 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar17 + -0x14) = local_b0;" (assignment_expression "*(code **)(puVar17 + -0x14) = local_b0" (pointer_expression "*(code **)(puVar17 + -0x14)" * (cast_expression "(code **)(puVar17 + -0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar17 + -0x18) = param_5;" (assignment_expression "*(uint *)(puVar17 + -0x18) = param_5" (pointer_expression "*(uint *)(puVar17 + -0x18)" * (cast_expression "(uint *)(puVar17 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar17 + -0x1c) = param_4;" (assignment_expression "*(code **)(puVar17 + -0x1c) = param_4" (pointer_expression "*(code **)(puVar17 + -0x1c)" * (cast_expression "(code **)(puVar17 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar17 + -0x20) = param_2" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar17 + -0x24) = piVar6;" (assignment_expression "*(int **)(puVar17 + -0x24) = piVar6" (pointer_expression "*(int **)(puVar17 + -0x24)" * (cast_expression "(int **)(puVar17 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x24)" ( (binary_expression "puVar17 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x28) = 0x21eb71;" (assignment_expression "*(undefined4 *)(puVar17 + -0x28) = 0x21eb71" (pointer_expression "*(undefined4 *)(puVar17 + -0x28)" * (cast_expression "(undefined4 *)(puVar17 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x28)" ( (binary_expression "puVar17 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar13)();" (call_expression "(*(code *)ppuVar13)()" (parenthesized_expression "(*(code *)ppuVar13)" ( (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar13 = extraout_EDX_02;" (assignment_expression "ppuVar13 = extraout_EDX_02" identifier = identifier) ;) })) (expression_statement "pbVar4 = local_c4;" (assignment_expression "pbVar4 = local_c4" identifier = identifier) ;) (expression_statement "uVar28 = CONCAT44(ppuVar13,local_a4);" (assignment_expression "uVar28 = CONCAT44(ppuVar13,local_a4)" identifier = (call_expression "CONCAT44(ppuVar13,local_a4)" identifier (argument_list "(ppuVar13,local_a4)" ( identifier , identifier )))) ;) (expression_statement "ppcVar18 = (code **)(puVar17 + -4);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -4)" identifier = (cast_expression "(code **)(puVar17 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) ;) (if_statement "if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }" if (parenthesized_expression "(local_c4 != (byte *)0x0)" ( (binary_expression "local_c4 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }" { (expression_statement "local_a4 = (code *)&local_2c;" (assignment_expression "local_a4 = (code *)&local_2c" identifier = (cast_expression "(code *)&local_2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "iVar19 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar19 = *(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 **)(puVar17 + -0x14) = local_c4;" (assignment_expression "*(byte **)(puVar17 + -0x14) = local_c4" (pointer_expression "*(byte **)(puVar17 + -0x14)" * (cast_expression "(byte **)(puVar17 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_a4;" (assignment_expression "local_34 = local_a4" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21ea36;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21ea36" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" * (cast_expression "(undefined4 *)(puVar17 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar7 = strlen(*(char **)(puVar17 + -0x14));" (assignment_expression "sVar7 = strlen(*(char **)(puVar17 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar17 + -0x14))" identifier (argument_list "(*(char **)(puVar17 + -0x14))" ( (pointer_expression "*(char **)(puVar17 + -0x14)" * (cast_expression "(char **)(puVar17 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "ppcVar18 = local_a0;" (assignment_expression "ppcVar18 = local_a0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -8)" * (cast_expression "(undefined4 *)(puVar17 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;" (assignment_expression "*(byte **)(puVar17 + -0xc) = pbVar4 + sVar7" (pointer_expression "*(byte **)(puVar17 + -0xc)" * (cast_expression "(byte **)(puVar17 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = (binary_expression "pbVar4 + sVar7" identifier + identifier)) ;) (expression_statement "*(byte **)(puVar17 + -0x10) = pbVar4;" (assignment_expression "*(byte **)(puVar17 + -0x10) = pbVar4" (pointer_expression "*(byte **)(puVar17 + -0x10)" * (cast_expression "(byte **)(puVar17 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)(puVar17 + -0x14) = local_a0;" (assignment_expression "*(code ***)(puVar17 + -0x14) = local_a0" (pointer_expression "*(code ***)(puVar17 + -0x14)" * (cast_expression "(code ***)(puVar17 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21ea4b" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" * (cast_expression "(undefined4 *)(puVar17 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(code ***)(puVar17 + -0xc) = ppcVar18;" (assignment_expression "*(code ***)(puVar17 + -0xc) = ppcVar18" (pointer_expression "*(code ***)(puVar17 + -0xc)" * (cast_expression "(code ***)(puVar17 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = iVar19 + 0x44;" (assignment_expression "*(int *)(puVar17 + -0x10) = iVar19 + 0x44" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar19 + 0x44" identifier + number_literal)) ;) (expression_statement "*(code ***)(puVar17 + -0x14) = &local_9c;" (assignment_expression "*(code ***)(puVar17 + -0x14) = &local_9c" (pointer_expression "*(code ***)(puVar17 + -0x14)" * (cast_expression "(code ***)(puVar17 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21ea5f" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" * (cast_expression "(undefined4 *)(puVar17 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar16 = local_9c;" (assignment_expression "pcVar16 = local_9c" identifier = identifier) ;) (if_statement "if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }" if (parenthesized_expression "(local_34 != local_a4)" ( (binary_expression "local_34 != local_a4" identifier != identifier) )) (compound_statement "{\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }" { (expression_statement "*(code **)(puVar17 + -0x18) = local_34;" (assignment_expression "*(code **)(puVar17 + -0x18) = local_34" (pointer_expression "*(code **)(puVar17 + -0x18)" * (cast_expression "(code **)(puVar17 + -0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;" (assignment_expression "*(undefined4 *)(puVar17 + -0x1c) = 0x21ea82" (pointer_expression "*(undefined4 *)(puVar17 + -0x1c)" * (cast_expression "(undefined4 *)(puVar17 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppcVar18 = (code **)(puVar17 + -8);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -8)" identifier = (cast_expression "(code **)(puVar17 + -8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) ;) (expression_statement "iVar19 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar19 = *(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 "uVar28 = CONCAT44(iVar19,local_a4);" (assignment_expression "uVar28 = CONCAT44(iVar19,local_a4)" identifier = (call_expression "CONCAT44(iVar19,local_a4)" identifier (argument_list "(iVar19,local_a4)" ( identifier , identifier )))) ;) (if_statement "if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }" if (parenthesized_expression "(pcVar16 != (code *)(iVar19 + 0x48))" ( (binary_expression "pcVar16 != (code *)(iVar19 + 0x48)" identifier != (cast_expression "(code *)(iVar19 + 0x48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x48)" ( (binary_expression "iVar19 + 0x48" identifier + number_literal) )))) )) (compound_statement "{\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -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 "iVar5 = *(int *)(iVar19 + 0x18);" (assignment_expression "iVar5 = *(int *)(iVar19 + 0x18)" identifier = (pointer_expression "*(int *)(iVar19 + 0x18)" * (cast_expression "(int *)(iVar19 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x18)" ( (binary_expression "iVar19 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar19 + 0x14;" (assignment_expression "iVar9 = iVar19 + 0x14" identifier = (binary_expression "iVar19 + 0x14" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }" if (parenthesized_expression "(*(int *)(iVar19 + 0x18) == 0)" ( (binary_expression "*(int *)(iVar19 + 0x18) == 0" (pointer_expression "*(int *)(iVar19 + 0x18)" * (cast_expression "(int *)(iVar19 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x18)" ( (binary_expression "iVar19 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }" { (labeled_statement "LAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;" statement_identifier : (expression_statement "*(code ****)(puVar17 + -0x18) = &local_70;" (assignment_expression "*(code ****)(puVar17 + -0x18) = &local_70" (pointer_expression "*(code ****)(puVar17 + -0x18)" * (cast_expression "(code ****)(puVar17 + -0x18)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_70" & identifier)) ;)) (expression_statement "local_70 = local_a0;" (assignment_expression "local_70 = local_a0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;" (assignment_expression "*(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6" (pointer_expression "*(undefined4 *)(puVar17 + -0x1c)" * (cast_expression "(undefined4 *)(puVar17 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00212060();" (call_expression "FUN_00212060()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" identifier = identifier) ;) (expression_statement "iVar19 = extraout_EDX_03;" (assignment_expression "iVar19 = extraout_EDX_03" identifier = identifier) ;) }) (else_clause "else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }" else (compound_statement "{\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }" { (do_statement "do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);" do (compound_statement "{\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  }" { (while_statement "while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }" while (parenthesized_expression "((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))))" ( (parenthesized_expression "(iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))" ( (comma_expression "iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar5" identifier = identifier) , (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))" ( (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" identifier != (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" 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 "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }" { (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(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_0021eae2;" 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_0021eae2;" goto statement_identifier ;)) })) (expression_statement "piVar6 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar6 = (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 "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar6 != 0)" ( (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" * identifier) != number_literal) )) ;) (labeled_statement "LAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;" statement_identifier : (if_statement "if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;" if (parenthesized_expression "(((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     ))" ( (binary_expression "((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )" (parenthesized_expression "((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10)))" ( (binary_expression "(iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar10 == iVar19 + 0x14)" ( (binary_expression "iVar10 == iVar19 + 0x14" identifier == (binary_expression "iVar19 + 0x14" identifier + number_literal)) )) || (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" ( (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" identifier < (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )" ( (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))" ( (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" identifier == (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" 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 "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_0021ebb8;" goto statement_identifier ;))) }))) (expression_statement "uVar28 = CONCAT44(iVar19,local_a4);" (assignment_expression "uVar28 = CONCAT44(iVar19,local_a4)" identifier = (call_expression "CONCAT44(iVar19,local_a4)" identifier (argument_list "(iVar19,local_a4)" ( identifier , identifier )))) ;) (expression_statement "ppcVar18 = (code **)(puVar17 + -8);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -8)" identifier = (cast_expression "(code **)(puVar17 + -8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) ;) (expression_statement "puVar17 = puVar17 + -8;" (assignment_expression "puVar17 = puVar17 + -8" identifier = (binary_expression "puVar17 + -8" identifier + number_literal)) ;) (for_statement "for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }" for ( (assignment_expression "puVar3 = *(undefined4 **)(pcVar16 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(pcVar16 + 0x30)" * (cast_expression "(undefined4 **)(pcVar16 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x30)" ( (binary_expression "pcVar16 + 0x30" identifier + number_literal) ))))) ; (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar3 = (undefined4 *)*puVar3" identifier = (cast_expression "(undefined4 *)*puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) ) (compound_statement "{\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }" { (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(code ***)(puVar17 + -0x14) = &local_7c;" (assignment_expression "*(code ***)(puVar17 + -0x14) = &local_7c" (pointer_expression "*(code ***)(puVar17 + -0x14)" * (cast_expression "(code ***)(puVar17 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;" (assignment_expression "*(undefined4 **)(puVar17 + -0x18) = puVar3 + 1" (pointer_expression "*(undefined4 **)(puVar17 + -0x18)" * (cast_expression "(undefined4 **)(puVar17 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);" (assignment_expression "*(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18)" (pointer_expression "*(code **)(puVar17 + -0x1c)" * (cast_expression "(code **)(puVar17 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" * (cast_expression "(undefined1 **)(puVar17 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x21eb3b" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" * (cast_expression "(undefined4 *)(puVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x24)" ( (binary_expression "puVar17 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_7c = (code *)(iVar10 + 0x18);" (assignment_expression "local_7c = (code *)(iVar10 + 0x18)" identifier = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar28 = CONCAT44(extraout_EDX_01,local_a4);" (assignment_expression "uVar28 = CONCAT44(extraout_EDX_01,local_a4)" identifier = (call_expression "CONCAT44(extraout_EDX_01,local_a4)" identifier (argument_list "(extraout_EDX_01,local_a4)" ( identifier , identifier )))) ;) (expression_statement "ppcVar18 = (code **)(puVar17 + -4);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -4)" identifier = (cast_expression "(code **)(puVar17 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) ;) (expression_statement "puVar17 = puVar17 + -4;" (assignment_expression "puVar17 = puVar17 + -4" identifier = (binary_expression "puVar17 + -4" identifier + number_literal)) ;) })) })) })) })) })) }) (else_clause "else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }" else (compound_statement "{\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }" { (if_statement "if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(uVar15 < *(uint *)(param_4 + 0xb0))" ( (binary_expression "uVar15 < *(uint *)(param_4 + 0xb0)" identifier < (pointer_expression "*(uint *)(param_4 + 0xb0)" * (cast_expression "(uint *)(param_4 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb0)" ( (binary_expression "param_4 + 0xb0" identifier + number_literal) ))))) )) (compound_statement "{\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }" { (expression_statement "local_5c = (code *)0x0;" (assignment_expression "local_5c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;" statement_identifier : (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x596da" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x19ca36" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);" (assignment_expression "uVar15 = uVar15 - *(uint *)(param_4 + 0xb0)" identifier = (binary_expression "uVar15 - *(uint *)(param_4 + 0xb0)" identifier - (pointer_expression "*(uint *)(param_4 + 0xb0)" * (cast_expression "(uint *)(param_4 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb0)" ( (binary_expression "param_4 + 0xb0" identifier + number_literal) )))))) ;) (expression_statement "uVar8 = *(uint *)(param_4 + 0xbc);" (assignment_expression "uVar8 = *(uint *)(param_4 + 0xbc)" identifier = (pointer_expression "*(uint *)(param_4 + 0xbc)" * (cast_expression "(uint *)(param_4 + 0xbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xbc)" ( (binary_expression "param_4 + 0xbc" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = *(code ***)(param_4 + 0xc0);" (assignment_expression "local_a0 = *(code ***)(param_4 + 0xc0)" identifier = (pointer_expression "*(code ***)(param_4 + 0xc0)" * (cast_expression "(code ***)(param_4 + 0xc0)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_4 + 0xc0)" ( (binary_expression "param_4 + 0xc0" identifier + number_literal) ))))) ;) (if_statement "if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }" if (parenthesized_expression "((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15)" ( (binary_expression "(uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15" (call_expression "(uint)((int)((int)local_a0 - uVar8) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((int)local_a0 - uVar8) >> 2)" ( (binary_expression "(int)((int)local_a0 - uVar8) >> 2" (cast_expression "(int)((int)local_a0 - uVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_a0 - uVar8)" ( (binary_expression "(int)local_a0 - uVar8" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x59678" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x19cc7b" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = *(code **)(uVar8 + uVar15 * 4);" (assignment_expression "local_5c = *(code **)(uVar8 + uVar15 * 4)" identifier = (pointer_expression "*(code **)(uVar8 + uVar15 * 4)" * (cast_expression "(code **)(uVar8 + uVar15 * 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + uVar15 * 4)" ( (binary_expression "uVar8 + uVar15 * 4" identifier + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar29 = CONCAT44(uVar8,local_5c);" (assignment_expression "uVar29 = CONCAT44(uVar8,local_5c)" identifier = (call_expression "CONCAT44(uVar8,local_5c)" identifier (argument_list "(uVar8,local_5c)" ( identifier , identifier )))) ;) (if_statement "if (local_5c == (code *)0x0) goto LAB_0021ecef;" if (parenthesized_expression "(local_5c == (code *)0x0)" ( (binary_expression "local_5c == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0021ecef;" goto statement_identifier ;)) (if_statement "if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }" if (parenthesized_expression "(((byte)local_5c[0x2a] & 0x10) != 0)" ( (binary_expression "((byte)local_5c[0x2a] & 0x10) != 0" (parenthesized_expression "((byte)local_5c[0x2a] & 0x10)" ( (binary_expression "(byte)local_5c[0x2a] & 0x10" (cast_expression "(byte)local_5c[0x2a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2a]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }" { (expression_statement "*(code **)((int)ppcVar18 + -0xc) = local_5c;" (assignment_expression "*(code **)((int)ppcVar18 + -0xc) = local_5c" (pointer_expression "*(code **)((int)ppcVar18 + -0xc)" * (cast_expression "(code **)((int)ppcVar18 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = param_2;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = param_2" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar29 = FUN_0034cd90();" (assignment_expression "uVar29 = FUN_0034cd90()" identifier = (call_expression "FUN_0034cd90()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "local_5c = (code *)uVar29;" (assignment_expression "local_5c = (code *)uVar29" identifier = (cast_expression "(code *)uVar29" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }" if (parenthesized_expression "(((byte)local_5c[0x2a] & 7) == 0)" ( (binary_expression "((byte)local_5c[0x2a] & 7) == 0" (parenthesized_expression "((byte)local_5c[0x2a] & 7)" ( (binary_expression "(byte)local_5c[0x2a] & 7" (cast_expression "(byte)local_5c[0x2a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2a]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }" { (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" identifier = (pointer_expression "*(code **)(local_5c + 0x30)" * (cast_expression "(code **)(local_5c + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0x30)" ( (binary_expression "local_5c + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_b0 = *(code **)(local_5c + 8);" (assignment_expression "local_b0 = *(code **)(local_5c + 8)" identifier = (pointer_expression "*(code **)(local_5c + 8)" * (cast_expression "(code **)(local_5c + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 8)" ( (binary_expression "local_5c + 8" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" identifier = (binary_expression "local_d8 + local_ac" identifier + identifier)) ;) (if_statement "if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }" if (parenthesized_expression "(((byte)local_b0[0x2c] & 1) == 0)" ( (binary_expression "((byte)local_b0[0x2c] & 1) == 0" (parenthesized_expression "((byte)local_b0[0x2c] & 1)" ( (binary_expression "(byte)local_b0[0x2c] & 1" (cast_expression "(byte)local_b0[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_b0[0x2c]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }" { (expression_statement "cVar1 = local_5c[0x28];" (assignment_expression "cVar1 = local_5c[0x28]" identifier = (subscript_expression "local_5c[0x28]" identifier [ number_literal ])) ;) (expression_statement "local_a4 = *(code **)(local_5c + 0xc);" (assignment_expression "local_a4 = *(code **)(local_5c + 0xc)" identifier = (pointer_expression "*(code **)(local_5c + 0xc)" * (cast_expression "(code **)(local_5c + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0xc)" ( (binary_expression "local_5c + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar14 = (byte)local_5c[0x2b] >> 5 & 1;" (assignment_expression "bVar14 = (byte)local_5c[0x2b] >> 5 & 1" identifier = (binary_expression "(byte)local_5c[0x2b] >> 5 & 1" (binary_expression "(byte)local_5c[0x2b] >> 5" (cast_expression "(byte)local_5c[0x2b]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2b]" identifier [ number_literal ])) >> number_literal) & number_literal)) ;) (expression_statement "bVar24 = ((byte)cVar1 & 0xf) < 2;" (assignment_expression "bVar24 = ((byte)cVar1 & 0xf) < 2" identifier = (binary_expression "((byte)cVar1 & 0xf) < 2" (parenthesized_expression "((byte)cVar1 & 0xf)" ( (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) < number_literal)) ;) (expression_statement "bVar26 = ((byte)cVar1 & 0xf) == 2;" (assignment_expression "bVar26 = ((byte)cVar1 & 0xf) == 2" identifier = (binary_expression "((byte)cVar1 & 0xf) == 2" (parenthesized_expression "((byte)cVar1 & 0xf)" ( (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal)) ;) (expression_statement "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" identifier = (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(cVar1,local_5c)" identifier (argument_list "(cVar1,local_5c)" ( identifier , identifier )))) & number_literal)) ;) (if_statement "if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" { (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = local_be == '\0';" (assignment_expression "bVar26 = local_be == '\0'" identifier = (binary_expression "local_be == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" identifier = (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(cVar1,local_5c)" identifier (argument_list "(cVar1,local_5c)" ( identifier , identifier )))) & number_literal)) ;) (if_statement "if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }" { (if_statement "if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }" if (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }" { (if_statement "if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }" if (parenthesized_expression "(*(int *)(*local_b8 + 8) == 0)" ( (binary_expression "*(int *)(*local_b8 + 8) == 0" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }" { (expression_statement "*(code **)((int)ppcVar18 + -4) = local_5c;" (assignment_expression "*(code **)((int)ppcVar18 + -4) = local_5c" (pointer_expression "*(code **)((int)ppcVar18 + -4)" * (cast_expression "(code **)((int)ppcVar18 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }" if (parenthesized_expression "((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0))" ( (binary_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)" (parenthesized_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_b8 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*local_b8 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(((byte)local_5c[0x29] & 3) == 0)" ( (binary_expression "((byte)local_5c[0x29] & 3) == 0" (parenthesized_expression "((byte)local_5c[0x29] & 3)" ( (binary_expression "(byte)local_5c[0x29] & 3" (cast_expression "(byte)local_5c[0x29]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x29]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }" { (expression_statement "uVar8 = local_e4 - 4;" (assignment_expression "uVar8 = local_e4 - 4" identifier = (binary_expression "local_e4 - 4" identifier - number_literal)) ;) (expression_statement "bVar24 = uVar8 < 0x36;" (assignment_expression "bVar24 = uVar8 < 0x36" identifier = (binary_expression "uVar8 < 0x36" identifier < number_literal)) ;) (expression_statement "bVar26 = uVar8 == 0x36;" (assignment_expression "bVar26 = uVar8 == 0x36" identifier = (binary_expression "uVar8 == 0x36" identifier == number_literal)) ;) (expression_statement "uVar29 = CONCAT44(uVar8,local_5c);" (assignment_expression "uVar29 = CONCAT44(uVar8,local_5c)" identifier = (call_expression "CONCAT44(uVar8,local_5c)" identifier (argument_list "(uVar8,local_5c)" ( identifier , identifier )))) ;) (if_statement "if (uVar8 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }" if (parenthesized_expression "(uVar8 < 0x37)" ( (binary_expression "uVar8 < 0x37" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }" { comment comment (expression_statement "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();" (call_expression "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))()" (parenthesized_expression "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))" ( (pointer_expression "*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8)" * (cast_expression "(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8[local_e4 - 0x597df] + (int)local_a8)" ( (binary_expression "local_a8[local_e4 - 0x597df] + (int)local_a8" (subscript_expression "local_a8[local_e4 - 0x597df]" identifier [ (binary_expression "local_e4 - 0x597df" identifier - number_literal) ]) + (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0021e7e0;" goto statement_identifier ;) })) })) (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" 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 "*(undefined4 *)((int)ppcVar18 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x10)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(code ****)((int)ppcVar18 + -0x14) = &local_80;" (assignment_expression "*(code ****)((int)ppcVar18 + -0x14) = &local_80" (pointer_expression "*(code ****)((int)ppcVar18 + -0x14)" * (cast_expression "(code ****)((int)ppcVar18 + -0x14)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_80" & identifier)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0x18) = &local_64;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x18) = &local_64" (pointer_expression "*(code ***)((int)ppcVar18 + -0x18)" * (cast_expression "(code ***)((int)ppcVar18 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x18)" ( (binary_expression "(int)ppcVar18 + -0x18" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "local_80 = local_a0 + 0xd;" (assignment_expression "local_80 = local_a0 + 0xd" identifier = (binary_expression "local_a0 + 0xd" identifier + number_literal)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0x1c) = local_80;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x1c) = local_80" (pointer_expression "*(code ***)((int)ppcVar18 + -0x1c)" * (cast_expression "(code ***)((int)ppcVar18 + -0x1c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x1c)" ( (binary_expression "(int)ppcVar18 + -0x1c" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)ppcVar18 + -0x20)" * (cast_expression "(undefined1 **)((int)ppcVar18 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x20)" ( (binary_expression "(int)ppcVar18 + -0x20" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x24)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x24)" ( (binary_expression "(int)ppcVar18 + -0x24" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_b0;" (assignment_expression "local_64 = local_b0" identifier = identifier) ;) (expression_statement "local_60 = local_a4;" (assignment_expression "local_60 = local_a4" identifier = identifier) ;) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);" (assignment_expression "bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20)" identifier = (binary_expression "(undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20)" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)ppcVar18 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x20)" ( (binary_expression "(int)ppcVar18 + -0x20" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar26 = ppcVar18 == (code **)0x4;" (assignment_expression "bVar26 = ppcVar18 == (code **)0x4" identifier = (binary_expression "ppcVar18 == (code **)0x4" identifier == (cast_expression "(code **)0x4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "ppcVar18 = (code **)((int)ppcVar18 + -4);" (assignment_expression "ppcVar18 = (code **)((int)ppcVar18 + -4)" identifier = (cast_expression "(code **)((int)ppcVar18 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar29 = CONCAT44(extraout_EDX_05,local_5c);" (assignment_expression "uVar29 = CONCAT44(extraout_EDX_05,local_5c)" identifier = (call_expression "CONCAT44(extraout_EDX_05,local_5c)" identifier (argument_list "(extraout_EDX_05,local_5c)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }" else (compound_statement "{\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }" { (expression_statement "local_a4 = (code *)0x0;" (assignment_expression "local_a4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }" else (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }" { (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" identifier = (pointer_expression "*(code **)(local_5c + 0x30)" * (cast_expression "(code **)(local_5c + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0x30)" ( (binary_expression "local_5c + 0x30" identifier + number_literal) ))))) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = (code *)0x0;" (assignment_expression "local_a4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar24 = CARRY4(local_ac,(uint)local_d8);" (assignment_expression "bVar24 = CARRY4(local_ac,(uint)local_d8)" identifier = (call_expression "CARRY4(local_ac,(uint)local_d8)" identifier (argument_list "(local_ac,(uint)local_d8)" ( identifier , (cast_expression "(uint)local_d8" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" identifier = (binary_expression "local_d8 + local_ac" identifier + identifier)) ;) (expression_statement "bVar26 = local_b4 == (code *)0x0;" (assignment_expression "bVar26 = local_b4 == (code *)0x0" identifier = (binary_expression "local_b4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }))) (labeled_statement "LAB_0021e7e0:\n        local_5c = (code *)uVar29;" statement_identifier : (expression_statement "local_5c = (code *)uVar29;" (assignment_expression "local_5c = (code *)uVar29" identifier = (cast_expression "(code *)uVar29" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "pbVar4 = *(byte **)local_5c;" (assignment_expression "pbVar4 = *(byte **)local_5c" identifier = (pointer_expression "*(byte **)local_5c" * (cast_expression "(byte **)local_5c" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar19 = 8;" (assignment_expression "iVar19 = 8" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)((int)local_a8 + -0x19ca26);" (assignment_expression "pbVar20 = (byte *)((int)local_a8 + -0x19ca26)" identifier = (cast_expression "(byte *)((int)local_a8 + -0x19ca26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19ca26)" ( (binary_expression "(int)local_a8 + -0x19ca26" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar22 = pbVar4;" (assignment_expression "pbVar22 = pbVar4" identifier = identifier) ;) (do_statement "do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar20 < *pbVar22;" (assignment_expression "bVar24 = *pbVar20 < *pbVar22" identifier = (binary_expression "*pbVar20 < *pbVar22" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar26 = *pbVar20 == *pbVar22;" (assignment_expression "bVar26 = *pbVar20 == *pbVar22" identifier = (binary_expression "*pbVar20 == *pbVar22" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }" { (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pbVar4 = pbVar4 + 8;" (assignment_expression "pbVar4 = pbVar4 + 8" identifier = (binary_expression "pbVar4 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }" else (compound_statement "{\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }" { (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);" (assignment_expression "pbVar20 = (byte *)((int)local_a8 + -0x19ca1d)" identifier = (cast_expression "(byte *)((int)local_a8 + -0x19ca1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19ca1d)" ( (binary_expression "(int)local_a8 + -0x19ca1d" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar22 = pbVar4;" (assignment_expression "pbVar22 = pbVar4" identifier = identifier) ;) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar20 < *pbVar22;" (assignment_expression "bVar25 = *pbVar20 < *pbVar22" identifier = (binary_expression "*pbVar20 < *pbVar22" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar24 = *pbVar20 == *pbVar22;" (assignment_expression "bVar24 = *pbVar20 == *pbVar22" identifier = (binary_expression "*pbVar20 == *pbVar22" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "cVar11 = (!bVar25 && !bVar24) - bVar25;" (assignment_expression "cVar11 = (!bVar25 && !bVar24) - bVar25" identifier = (binary_expression "(!bVar25 && !bVar24) - bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) - identifier)) ;) (expression_statement "pbVar4 = pbVar4 + 7;" (assignment_expression "pbVar4 = pbVar4 + 7" identifier = (binary_expression "pbVar4 + 7" identifier + number_literal)) ;) (if_statement "if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pbVar4 = local_c4;\n          }" { (expression_statement "pbVar4 = local_c4;" (assignment_expression "pbVar4 = local_c4" identifier = identifier) ;) })) }))) (expression_statement "local_c4 = pbVar4;" (assignment_expression "local_c4 = pbVar4" identifier = identifier) ;) (expression_statement "uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);" (assignment_expression "uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11)" identifier = (call_expression "CONCAT31((int3)(uVar29 >> 0x28),cVar11)" identifier (argument_list "((int3)(uVar29 >> 0x28),cVar11)" ( (call_expression "(int3)(uVar29 >> 0x28)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar29 >> 0x28)" ( (binary_expression "uVar29 >> 0x28" identifier >> number_literal) ))) , identifier )))) ;) (if_statement "if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" if (parenthesized_expression "(local_bd != '\0')" ( (binary_expression "local_bd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" { (if_statement "if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (compound_statement "{\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }" { (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }" else (compound_statement "{\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }" { (expression_statement "local_34 = local_b0;" (assignment_expression "local_34 = local_b0" identifier = identifier) ;) (expression_statement "local_30 = (uint)local_a4;" (assignment_expression "local_30 = (uint)local_a4" identifier = (cast_expression "(uint)local_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_bc;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_bc" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar3 = *(undefined4 **)(local_c8 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_c8 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_c8 + 4)" * (cast_expression "(undefined4 **)(local_c8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 4)" ( (binary_expression "local_c8 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }" if (parenthesized_expression "(puVar3 == *(undefined4 **)(local_c8 + 8))" ( (binary_expression "puVar3 == *(undefined4 **)(local_c8 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_c8 + 8)" * (cast_expression "(undefined4 **)(local_c8 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 8)" ( (binary_expression "local_c8 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }" { (expression_statement "*(code ***)((int)ppcVar18 + -8) = &local_5c;" (assignment_expression "*(code ***)((int)ppcVar18 + -8) = &local_5c" (pointer_expression "*(code ***)((int)ppcVar18 + -8)" * (cast_expression "(code ***)((int)ppcVar18 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;" (assignment_expression "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3" (pointer_expression "*(undefined4 **)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 **)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_c8" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000726c0();" (call_expression "FUN_000726c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }" else (compound_statement "{\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }" { (expression_statement "*puVar3 = local_5c;" (assignment_expression "*puVar3 = local_5c" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(local_c8 + 4) = puVar3 + 1;" (assignment_expression "*(undefined4 **)(local_c8 + 4) = puVar3 + 1" (pointer_expression "*(undefined4 **)(local_c8 + 4)" * (cast_expression "(undefined4 **)(local_c8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 4)" ( (binary_expression "local_c8 + 4" identifier + number_literal) )))) = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_dc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_d8;" (assignment_expression "local_34 = local_d8" identifier = identifier) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" identifier = (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = *param_7;" (assignment_expression "uVar8 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "puVar3 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_cc + 4)" identifier = (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);" (assignment_expression "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" identifier = (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" ( (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" if (parenthesized_expression "(puVar3 == *(undefined4 **)(local_cc + 8))" ( (binary_expression "puVar3 == *(undefined4 **)(local_cc + 8)" identifier == (pointer_expression "*(undefined4 **)(local_cc + 8)" * (cast_expression "(undefined4 **)(local_cc + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 8)" ( (binary_expression "local_cc + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }" { (expression_statement "*(code ***)((int)ppcVar18 + -8) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -8) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -8)" * (cast_expression "(code ***)((int)ppcVar18 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;" (assignment_expression "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3" (pointer_expression "*(undefined4 **)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 **)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_cc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_cc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" else (compound_statement "{\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" { (expression_statement "*puVar3 = local_34;" (assignment_expression "*puVar3 = local_34" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar3 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar3 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) )))) = (binary_expression "puVar3 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_e0" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar12 = extraout_EDX_00;" (assignment_expression "uVar12 = extraout_EDX_00" identifier = identifier) ;) })) (expression_statement "uVar28 = CONCAT44(uVar12,local_a4);" (assignment_expression "uVar28 = CONCAT44(uVar12,local_a4)" identifier = (call_expression "CONCAT44(uVar12,local_a4)" identifier (argument_list "(uVar12,local_a4)" ( identifier , identifier )))) ;) (expression_statement "puVar17 = (undefined1 *)ppcVar18;" (assignment_expression "puVar17 = (undefined1 *)ppcVar18" identifier = (cast_expression "(undefined1 *)ppcVar18" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar14 != 0) goto LAB_0021e8f0;" if (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0021e8f0;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0021e5a5:\n      local_a4 = (code *)uVar28;" statement_identifier : (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 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)) ;) }) while (parenthesized_expression "(param_8 != local_d4)" ( (binary_expression "param_8 != local_d4" identifier != identifier) )) ;) })) (if_statement "if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_4c[0] != local_ec)" ( (binary_expression "local_4c[0] != local_ec" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }" { (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (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 "ELFOSABI": Some values do not have unique names */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void gc_process_relocs(Target_s390<32> * this, Symbol_table * symtab,\n   Layout * layout, Sized_relobj_file<32,_true> * object, uint data_shndx, uint sh_type, uchar *\n   prelocs, size_t reloc_count, Output_section * output_section, bool needs_special_offset_handling,\n   size_t local_symbol_count, uchar * plocal_symbols) */\n\nvoid __thiscall\nanon_unknown.dwarf_130c1fc::Target_s390<32>::gc_process_relocs\n          (Target_s390<32> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object,uint data_shndx,uint sh_type,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  _Base_ptr *pp_Var1;\n  byte bVar2;\n  ushort uVar3;\n  General_options *pGVar4;\n  pointer puVar5;\n  uint uVar6;\n  _Base_ptr p_Var7;\n  Target *pTVar8;\n  Garbage_collection *pGVar9;\n  undefined4 *puVar10;\n  _func_int_varargs *p_Var11;\n  char *pcVar12;\n  Icf *pIVar13;\n  code *pcVar14;\n  Parameters *pPVar15;\n  size_t sVar16;\n  _func_int_varargs **pp_Var17;\n  Xindex *pXVar18;\n  pointer pcVar19;\n  int iVar20;\n  _Rb_tree_header *p_Var21;\n  _Base_ptr p_Var22;\n  _Rb_tree_header *p_Var23;\n  char cVar24;\n  General_options *extraout_EDX;\n  General_options *extraout_EDX_00;\n  pointer ppSVar25;\n  General_options *extraout_EDX_01;\n  _Alloc_hider _Var26;\n  General_options *extraout_EDX_02;\n  General_options *extraout_EDX_03;\n  pointer extraout_EDX_04;\n  General_options *extraout_EDX_05;\n  General_options *extraout_EDX_06;\n  byte bVar27;\n  uint uVar28;\n  Relobj *pRVar29;\n  undefined4 *puVar30;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  **ppaVar31;\n  Addend_info *unaff_ESI;\n  undefined **ppuVar32;\n  byte *pbVar33;\n  Addend_info *pAVar34;\n  _func_int_varargs **pp_Var35;\n  _Alloc_hider _Var36;\n  bool bVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  pair<std::__detail::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>,_bool>\n  pVar41;\n  General_options *pGStack_f0;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *local_ec;\n  __node_gen_type *local_e8;\n  uint local_e4;\n  Reloc_addend_size_info *local_e0;\n  Addend_info *local_dc;\n  Relobj *local_d8;\n  size_t local_d4;\n  undefined1 *local_d0;\n  Offset_info *local_cc;\n  Symbol_info *local_c8;\n  _func_int_varargs **local_c4;\n  bool local_be;\n  char local_bd;\n  mapped_type *local_bc;\n  Parameters **local_b8;\n  int local_b4;\n  Output_segment *local_b0;\n  pointer local_ac;\n  undefined **local_a8;\n  Relobj *local_a4;\n  Icf *local_a0;\n  code *local_9c;\n  _Rb_tree_header *local_98;\n  undefined1 local_94 [16];\n  __node_gen_type __node_gen_2;\n  __node_gen_type __node_gen_3;\n  __node_gen_type __node_gen_1;\n  __node_gen_type __node_gen;\n  Section_id *local_74;\n  Icf *local_70;\n  Sized_relobj_file<32,_true> *local_6c;\n  uint local_68;\n  Output_segment *local_64;\n  Relobj *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  bVar40 = 0;\n  local_a8 = &_GLOBAL_OFFSET_TABLE_;\n  if (sh_type == 9) {\n    return;\n  }\n  local_b8 = &gold::parameters;\n  pGVar4 = gold::parameters->options_;\n  if (pGVar4 == (General_options *)0x0) {\n    pGStack_f0 = pGVar4;\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if (pGVar4->icf_status_ == ICF_NONE) {\n    local_ec = &src_section_name.field_2;\n    pGStack_f0 = (General_options *)0x0;\n    src_section_name._M_dataplus._M_p = (pointer)local_ec;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    ppaVar31 = &local_ec;\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_ec = &src_section_name.field_2;\n    ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)&pGStack_f0;\n  }\n  _Var36._M_p = src_section_name._M_dataplus._M_p;\n  pPVar15 = *local_b8;\n  _Var26._M_p = (pointer)pPVar15->options_;\n  if ((General_options *)_Var26._M_p == (General_options *)0x0) {\n    *(Parameters **)((int)ppaVar31 + -4) = pPVar15;\n    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f139;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8));\n  }\n  if (((General_options *)_Var26._M_p)->icf_status_ == ICF_NONE) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = (Reloc_addend_size_info *)0x0;\n    local_cc = (Offset_info *)0x0;\n    local_dc = (Addend_info *)0x0;\n    local_c8 = (Symbol_info *)0x0;\n    local_bc = (mapped_type *)0x0;\n  }\n  else {\n    local_a4 = (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)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef87;\n      sVar16 = strlen(*(char **)((int)ppaVar31 + -0x10));\n      pcVar19 = _Var36._M_p + sVar16;\n    }\n    *(undefined4 *)((int)ppaVar31 + -4) = 0;\n    *(pointer *)((int)ppaVar31 + -8) = pcVar19;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)ppaVar31 + -0xc) = _Var36._M_p;\n    *(Icf **)((int)ppaVar31 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef9f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar20 = 5;\n    bVar37 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppaVar31 + -0x10);\n    bVar39 = ppaVar31 ==\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)0x0;\n    ppuVar32 = local_a8 + -0x67293;\n    pRVar29 = src_id.first;\n    do {\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar27 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n      bVar37 = *(byte *)ppuVar32 < bVar27;\n      bVar39 = *(byte *)ppuVar32 == bVar27;\n      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n      pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n    } while (bVar39);\n    bVar38 = false;\n    bVar37 = (!bVar37 && !bVar39) == bVar37;\n    if (!bVar37) {\n      iVar20 = 0xf;\n      pAVar34 = (Addend_info *)((int)local_a8 + -0x19ca46);\n      pRVar29 = src_id.first;\n      do {\n        unaff_ESI = pAVar34;\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);\n        bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n        bVar27 = *(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start;\n        bVar38 = bVar27 < bVar2;\n        bVar37 = bVar27 == bVar2;\n        pAVar34 = unaff_ESI;\n        pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n      } while (bVar37);\n      if ((!bVar38 && !bVar37) != bVar38) {\n        if (src_id.first == local_a4) {\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (src_id.first != local_a4) {\n      *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f1a9;\n      operator_delete(*(void **)((int)ppaVar31 + -0x10));\n    }\n    *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_a0 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppaVar31 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f014;\n    local_bc = 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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -0xc));\n    unaff_ESI = &local_bc->addend_info;\n    _Var26._M_p = (pointer)&local_bc->offset_info;\n    local_c8 = &local_bc->symbol_info;\n    local_e0 = &local_bc->reloc_addend_size_info;\n    local_dc = unaff_ESI;\n    local_cc = (Offset_info *)_Var26._M_p;\n    pPVar15 = *local_b8;\n    local_bd = '\x01';\n  }\n  if (pPVar15->options_ == (General_options *)0x0) {\n    *(Addend_info **)((int)ppaVar31 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f155;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8));\n  }\n  local_be = false;\n  if (pPVar15->options_->icf_status_ == ICF_SAFE) {\n    *(Target_s390<32> **)((int)ppaVar31 + -0x10) = this;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eeab;\n    local_be = do_can_check_for_function_pointers(*(Target_s390<32> **)((int)ppaVar31 + -0x10));\n    bVar37 = false;\n    bVar39 = !local_be;\n    _Var26._M_p = (pointer)extraout_EDX_05;\n    if (!bVar39) {\n      iVar20 = 0xc;\n      local_be = false;\n      ppuVar32 = local_a8 + -0x66894;\n      _Var26 = src_section_name._M_dataplus;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p;\n        bVar39 = *(byte *)ppuVar32 == *_Var26._M_p;\n        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1);\n      } while (bVar39);\n      bVar38 = false;\n      bVar37 = (!bVar37 && !bVar39) == bVar37;\n      _Var26 = src_section_name._M_dataplus;\n      if (!bVar37) {\n        iVar20 = 0x11;\n        pbVar33 = (byte *)((int)local_a8 + -0x19a243);\n        _Var36 = src_section_name._M_dataplus;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar38 = *pbVar33 < (byte)*_Var36._M_p;\n          bVar37 = *pbVar33 == *_Var36._M_p;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n        } while (bVar37);\n        bVar39 = false;\n        bVar37 = (!bVar38 && !bVar37) == bVar38;\n        if (!bVar37) {\n          iVar20 = 0xc;\n          pbVar33 = (byte *)((int)local_a8 + -0x19a231);\n          _Var36 = src_section_name._M_dataplus;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          bVar38 = false;\n          bVar37 = (!bVar39 && !bVar37) == bVar39;\n          if (!bVar37) {\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (reloc_count != 0) {\n    local_c4 = (_func_int_varargs **)0x0;\n    local_d0 = local_94;\n    local_d4 = 0;\n    local_e8 = &__node_gen;\n    do {\n      uVar6 = *(uint *)(prelocs + 4);\n      local_e4 = uVar6 >> 0x18;\n      uVar28 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;\n      uVar6 = *(uint *)(prelocs + 8);\n      local_ac = (pointer)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                          uVar6 << 0x18);\n      if (uVar28 < param_10) {\n        if (plocal_symbols == (uchar *)0x0) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0xea;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0a4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        local_a4 = (Relobj *)\n                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) >> 8);\n        if (local_a4 < (Relobj *)0xff00) {\nLAB_0021e61b:\n          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);\n          pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    );\n          local_b4 = (int)&local_ac->first + (int)pRVar29;\n          if (local_bd != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a4;\n            *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e662;\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                         **)((int)ppaVar31 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n            bVar37 = true;\n            if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e694;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;\n              p_Var11 = pp_Var17[0x1b];\n              *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            *(uint *)((int)ppaVar31 + -8) = uVar28;\n            *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc) = object;\n            *(Xindex **)((int)ppaVar31 + -0x10) = pXVar18;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e719;\n            local_a4 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppaVar31 + -0x10),\n                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8));\n            _Var26._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0021e61b;\n          }\n          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);\n          pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    );\n          local_b4 = (int)&local_ac->first + (int)pRVar29;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e4f1;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          bVar37 = false;\n          if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e520;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));\nLAB_0021e520:\n          src_id.first = pRVar29;\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          local_2c = local_ac;\n          src_id.second = 0;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e550;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed65;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e598;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX;\n          if (!bVar37) goto LAB_0021e5a5;\n        }\n        if ((local_be != false) && ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 1)) {\n          if ((*local_b8)->options_ == (General_options *)0x0) {\n            *(pointer *)((int)ppaVar31 + -4) = _Var26._M_p;\n            *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n            *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f11d;\n            gold::do_gold_unreachable\n                      (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                       *(char **)((int)ppaVar31 + -8));\n          }\n          if (((*local_b8)->options_->shared_).value == false) {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = symtab->icf_;\n            local_6c = object;\n            uVar3 = *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n            *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar3 << 8 | uVar3 >> 8);\n            *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18) = &local_6c;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ec66;\n            pVar41 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var26._M_p = pVar41._4_4_;\n            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)((int)ppaVar31 + -4);\n          }\n        }\n        if ((Relobj *)data_shndx != local_a4) {\n          local_b0 = (Output_segment *)object;\n          puVar30 = ppaVar31;\nLAB_0021e8f0:\n          if ((*local_b8)->options_ == (General_options *)0x0) {\n            puVar30[-2] = local_a8 + -0x5941e;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x21f0c2;\n            gold::do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }\n          ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      **)puVar30;\n          if (((*local_b8)->options_->gc_sections_).value != false) {\n            src_id_1.first = (Relobj *)object;\n            p_Var23 = &(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_b0;\n            dst_id.second = (uint)local_a4;\n            p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var22 = &p_Var23->_M_header;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021e980:\n              puVar30[-4] = &local_74;\n              local_74 = &src_id_1;\n              puVar30[-5] = 0x21e99b;\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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              p_Var21 = local_98;\n            }\n            else {\n              do {\n                while ((p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left;\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021e96a;\n                }\n                pp_Var1 = &(p_Var21->_M_header)._M_right;\n                p_Var7 = *pp_Var1;\n                p_Var21 = (_Rb_tree_header *)p_Var22;\n              } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021e96a:\n              if (((p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\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_b8)->target_;\n            if (pTVar8 == (Target *)0x0) {\n              puVar30[-3] = local_a8 + -0x59664;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x21f101;\n              gold::do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }\n            _Var26._M_p = (pointer)pTVar8->_vptr_Target[0x41];\n            if ((General_options *)_Var26._M_p != (General_options *)(local_a8 + -0x1510f0)) {\n              puVar30[-3] = local_b4;\n              puVar30[-4] = local_a4;\n              puVar30[-5] = local_b0;\n              puVar30[-6] = data_shndx;\n              puVar30[-7] = object;\n              puVar30[-8] = symtab;\n              puVar30[-9] = pTVar8;\n              puVar30[-10] = 0x21eb71;\n              (*(code *)_Var26._M_p)();\n              _Var26._M_p = (pointer)extraout_EDX_02;\n            }\n            pp_Var17 = local_c4;\n            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)(puVar30 + -1);\n            if (local_c4 != (_func_int_varargs **)0x0) {\n              local_a4 = (Relobj *)&local_2c;\n              pGVar9 = symtab->gc_;\n              puVar30[-5] = local_c4;\n              local_a0 = (Icf *)&src_id;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x21ea36;\n              sVar16 = strlen((char *)puVar30[-5]);\n              pIVar13 = local_a0;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var17 + sVar16);\n              puVar30[-4] = pp_Var17;\n              puVar30[-5] = local_a0;\n              puVar30[-6] = 0x21ea4b;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pIVar13;\n              puVar30[-4] = &pGVar9->cident_sections_;\n              puVar30[-5] = &local_9c;\n              puVar30[-6] = 0x21ea5f;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              pcVar14 = local_9c;\n              if (src_id.first != local_a4) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }\n              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2);\n              _Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var22 = (_Base_ptr)pcVar12;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        uVar28 = uVar28 - object->local_symbol_count_;\n        ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar25[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }\n_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);\n        pp_Var35 = pp_Var17;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);\n        bVar38 = false;\n        bVar37 = (!bVar37 && !bVar39) == bVar37;\n        if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }\n        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);\n        if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar30 = ppaVar31;\n        if (bVar27 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4);\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_ec) {\n    *(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e6ba;\n    operator_delete(*(void **)((int)ppaVar31 + -0x10));\n  }\n  return;\n}\n\n" comment comment comment comment primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_130c1fc::Target_s390<32>::" identifier . identifier : : identifier < number_literal > : :) (function_declarator "gc_process_relocs\n          (Target_s390<32> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object,uint data_shndx,uint sh_type,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_s390<32> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object,uint data_shndx,uint sh_type,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_s390<32> *this" type_identifier (ERROR "<32>" < number_literal >) (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 sh_type" 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)) ))) { (declaration "_Base_ptr *pp_Var1;" type_identifier (pointer_declarator "*pp_Var1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "General_options *pGVar4;" type_identifier (pointer_declarator "*pGVar4" * identifier) ;) (declaration "pointer puVar5;" type_identifier identifier ;) (declaration "uint uVar6;" 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 "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "Icf *pIVar13;" type_identifier (pointer_declarator "*pIVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "Parameters *pPVar15;" type_identifier (pointer_declarator "*pPVar15" * identifier) ;) (declaration "size_t sVar16;" primitive_type identifier ;) (declaration "_func_int_varargs **pp_Var17;" type_identifier (pointer_declarator "**pp_Var17" * (pointer_declarator "*pp_Var17" * identifier)) ;) (declaration "Xindex *pXVar18;" type_identifier (pointer_declarator "*pXVar18" * identifier) ;) (declaration "pointer pcVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "_Rb_tree_header *p_Var21;" type_identifier (pointer_declarator "*p_Var21" * identifier) ;) (declaration "_Base_ptr p_Var22;" type_identifier identifier ;) (declaration "_Rb_tree_header *p_Var23;" type_identifier (pointer_declarator "*p_Var23" * identifier) ;) (declaration "char cVar24;" primitive_type identifier ;) (declaration "General_options *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "General_options *extraout_EDX_00;" type_identifier (pointer_declarator "*extraout_EDX_00" * identifier) ;) (declaration "pointer ppSVar25;" type_identifier identifier ;) (declaration "General_options *extraout_EDX_01;" type_identifier (pointer_declarator "*extraout_EDX_01" * identifier) ;) (declaration "_Alloc_hider _Var26;" type_identifier identifier ;) (declaration "General_options *extraout_EDX_02;" type_identifier (pointer_declarator "*extraout_EDX_02" * identifier) ;) (declaration "General_options *extraout_EDX_03;" type_identifier (pointer_declarator "*extraout_EDX_03" * identifier) ;) (declaration "pointer extraout_EDX_04;" type_identifier identifier ;) (declaration "General_options *extraout_EDX_05;" type_identifier (pointer_declarator "*extraout_EDX_05" * identifier) ;) (declaration "General_options *extraout_EDX_06;" type_identifier (pointer_declarator "*extraout_EDX_06" * identifier) ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "Relobj *pRVar29;" type_identifier (pointer_declarator "*pRVar29" * identifier) ;) (declaration "undefined4 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  **ppaVar31;" (binary_expression "allocator<char>_>_9\n  **ppaVar31" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  **ppaVar31" identifier * (pointer_expression "*ppaVar31" * identifier))) ;) (declaration "Addend_info *unaff_ESI;" type_identifier (pointer_declarator "*unaff_ESI" * identifier) ;) (declaration "undefined **ppuVar32;" type_identifier (pointer_declarator "**ppuVar32" * (pointer_declarator "*ppuVar32" * identifier)) ;) (declaration "byte *pbVar33;" type_identifier (pointer_declarator "*pbVar33" * identifier) ;) (declaration "Addend_info *pAVar34;" type_identifier (pointer_declarator "*pAVar34" * identifier) ;) (declaration "_func_int_varargs **pp_Var35;" type_identifier (pointer_declarator "**pp_Var35" * (pointer_declarator "*pp_Var35" * identifier)) ;) (declaration "_Alloc_hider _Var36;" type_identifier identifier ;) (declaration "bool bVar37;" primitive_type identifier ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "bool bVar39;" primitive_type identifier ;) (declaration "byte bVar40;" type_identifier identifier ;) (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (expression_statement "__detail::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>,_bool>\n  pVar41;" (comma_expression "__detail::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>,_bool>\n  pVar41" identifier (ERROR "::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>" : : (binary_expression "_Node_iterator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier > , identifier , identifier >) , (binary_expression "_bool>\n  pVar41" identifier > identifier)) ;) (declaration "General_options *pGStack_f0;" type_identifier (pointer_declarator "*pGStack_f0" * identifier) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *local_ec;" (binary_expression "allocator<char>_>_9\n  *local_ec" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *local_ec" identifier * identifier)) ;) (declaration "__node_gen_type *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "uint local_e4;" type_identifier identifier ;) (declaration "Reloc_addend_size_info *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "Addend_info *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "Relobj *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "size_t local_d4;" primitive_type identifier ;) (declaration "undefined1 *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "Offset_info *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "Symbol_info *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "_func_int_varargs **local_c4;" type_identifier (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier)) ;) (declaration "bool local_be;" primitive_type identifier ;) (declaration "char local_bd;" primitive_type identifier ;) (declaration "mapped_type *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "Parameters **local_b8;" type_identifier (pointer_declarator "**local_b8" * (pointer_declarator "*local_b8" * identifier)) ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "Output_segment *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "pointer local_ac;" type_identifier identifier ;) (declaration "undefined **local_a8;" type_identifier (pointer_declarator "**local_a8" * (pointer_declarator "*local_a8" * identifier)) ;) (declaration "Relobj *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "Icf *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "code *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "_Rb_tree_header *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined1 local_94 [16];" type_identifier (array_declarator "local_94 [16]" identifier [ number_literal ]) ;) (declaration "__node_gen_type __node_gen_2;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen_3;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen_1;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "Section_id *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "Icf *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (expression_statement "Sized_relobj_file<32,_true> *local_6c;" (comma_expression "Sized_relobj_file<32,_true> *local_6c" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *local_6c" identifier > (pointer_expression "*local_6c" * identifier))) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "Output_segment *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "Relobj *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 "bVar40 = 0;" (assignment_expression "bVar40 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_a8 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (if_statement "if (sh_type == 9) {\n    return;\n  }" if (parenthesized_expression "(sh_type == 9)" ( (binary_expression "sh_type == 9" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "local_b8 = &gold::parameters;" (assignment_expression "local_b8 = &gold" identifier = (pointer_expression "&gold" & identifier)) (ERROR "::parameters" : : identifier) ;) (expression_statement "pGVar4 = gold::parameters->options_;" (field_expression "pGVar4 = gold::parameters->options_" (assignment_expression "pGVar4 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar4 == (General_options *)0x0) {\n    pGStack_f0 = pGVar4;\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(pGVar4 == (General_options *)0x0)" ( (binary_expression "pGVar4 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pGStack_f0 = pGVar4;\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "pGStack_f0 = pGVar4;" (assignment_expression "pGStack_f0 = pGVar4" 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 (pGVar4->icf_status_ == ICF_NONE) {\n    local_ec = &src_section_name.field_2;\n    pGStack_f0 = (General_options *)0x0;\n    src_section_name._M_dataplus._M_p = (pointer)local_ec;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    ppaVar31 = &local_ec;\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_ec = &src_section_name.field_2;\n    ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)&pGStack_f0;\n  }" if (parenthesized_expression "(pGVar4->icf_status_ == ICF_NONE)" ( (binary_expression "pGVar4->icf_status_ == ICF_NONE" (field_expression "pGVar4->icf_status_" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    local_ec = &src_section_name.field_2;\n    pGStack_f0 = (General_options *)0x0;\n    src_section_name._M_dataplus._M_p = (pointer)local_ec;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    ppaVar31 = &local_ec;\n  }" { (expression_statement "local_ec = &src_section_name.field_2;" (assignment_expression "local_ec = &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_f0 = (General_options *)0x0;" (assignment_expression "pGStack_f0 = (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_ec;" (assignment_expression "src_section_name._M_dataplus._M_p = (pointer)local_ec" (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_ec" ( (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 "ppaVar31 = &local_ec;" (assignment_expression "ppaVar31 = &local_ec" identifier = (pointer_expression "&local_ec" & 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_ec = &src_section_name.field_2;\n    ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)&pGStack_f0;\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_ec = &src_section_name.field_2;\n    ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)&pGStack_f0;\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_ec = &src_section_name.field_2;" (assignment_expression "local_ec = &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 "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)&pGStack_f0;" (assignment_expression "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)&pGStack_f0" identifier = (binary_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)&pGStack_f0" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                **" identifier * (pointer_expression "*" * identifier))) )) & identifier)) ;) }))) (expression_statement "_Var36._M_p = src_section_name._M_dataplus._M_p;" (assignment_expression "_Var36._M_p = src_section_name._M_dataplus._M_p" (field_expression "_Var36._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_b8;" (assignment_expression "pPVar15 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "_Var26._M_p = (pointer)pPVar15->options_;" (assignment_expression "_Var26._M_p = (pointer)pPVar15->options_" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)pPVar15->options_" ( (type_descriptor "pointer" type_identifier) ) (field_expression "pPVar15->options_" identifier -> field_identifier))) ;) (if_statement "if ((General_options *)_Var26._M_p == (General_options *)0x0) {\n    *(Parameters **)((int)ppaVar31 + -4) = pPVar15;\n    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f139;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8));\n  }" if (parenthesized_expression "((General_options *)_Var26._M_p == (General_options *)0x0)" ( (binary_expression "(General_options *)_Var26._M_p == (General_options *)0x0" (cast_expression "(General_options *)_Var26._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(Parameters **)((int)ppaVar31 + -4) = pPVar15;\n    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f139;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8));\n  }" { (expression_statement "*(Parameters **)((int)ppaVar31 + -4) = pPVar15;" (assignment_expression "*(Parameters **)((int)ppaVar31 + -4) = pPVar15" (pointer_expression "*(Parameters **)((int)ppaVar31 + -4)" * (cast_expression "(Parameters **)((int)ppaVar31 + -4)" ( (type_descriptor "Parameters **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -4)" ( (binary_expression "(int)ppaVar31 + -4" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppaVar31 + -8)" * (cast_expression "(undefined ***)((int)ppaVar31 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0xc)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppaVar31 + -0x10)" * (cast_expression "(int *)((int)ppaVar31 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f139;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f139" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8));" (call_expression "do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8))" identifier (argument_list "(*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8))" ( (pointer_expression "*(char **)((int)ppaVar31 + -0x10)" * (cast_expression "(char **)((int)ppaVar31 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppaVar31 + -0xc)" * (cast_expression "(int *)((int)ppaVar31 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppaVar31 + -8)" * (cast_expression "(char **)((int)ppaVar31 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if (((General_options *)_Var26._M_p)->icf_status_ == ICF_NONE) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = (Reloc_addend_size_info *)0x0;\n    local_cc = (Offset_info *)0x0;\n    local_dc = (Addend_info *)0x0;\n    local_c8 = (Symbol_info *)0x0;\n    local_bc = (mapped_type *)0x0;\n  }\n  else {\n    local_a4 = (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)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef87;\n      sVar16 = strlen(*(char **)((int)ppaVar31 + -0x10));\n      pcVar19 = _Var36._M_p + sVar16;\n    }\n    *(undefined4 *)((int)ppaVar31 + -4) = 0;\n    *(pointer *)((int)ppaVar31 + -8) = pcVar19;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)ppaVar31 + -0xc) = _Var36._M_p;\n    *(Icf **)((int)ppaVar31 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef9f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar20 = 5;\n    bVar37 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppaVar31 + -0x10);\n    bVar39 = ppaVar31 ==\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)0x0;\n    ppuVar32 = local_a8 + -0x67293;\n    pRVar29 = src_id.first;\n    do {\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar27 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n      bVar37 = *(byte *)ppuVar32 < bVar27;\n      bVar39 = *(byte *)ppuVar32 == bVar27;\n      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n      pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n    } while (bVar39);\n    bVar38 = false;\n    bVar37 = (!bVar37 && !bVar39) == bVar37;\n    if (!bVar37) {\n      iVar20 = 0xf;\n      pAVar34 = (Addend_info *)((int)local_a8 + -0x19ca46);\n      pRVar29 = src_id.first;\n      do {\n        unaff_ESI = pAVar34;\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);\n        bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n        bVar27 = *(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start;\n        bVar38 = bVar27 < bVar2;\n        bVar37 = bVar27 == bVar2;\n        pAVar34 = unaff_ESI;\n        pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n      } while (bVar37);\n      if ((!bVar38 && !bVar37) != bVar38) {\n        if (src_id.first == local_a4) {\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (src_id.first != local_a4) {\n      *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f1a9;\n      operator_delete(*(void **)((int)ppaVar31 + -0x10));\n    }\n    *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_a0 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppaVar31 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f014;\n    local_bc = 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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -0xc));\n    unaff_ESI = &local_bc->addend_info;\n    _Var26._M_p = (pointer)&local_bc->offset_info;\n    local_c8 = &local_bc->symbol_info;\n    local_e0 = &local_bc->reloc_addend_size_info;\n    local_dc = unaff_ESI;\n    local_cc = (Offset_info *)_Var26._M_p;\n    pPVar15 = *local_b8;\n    local_bd = '\x01';\n  }" if (parenthesized_expression "(((General_options *)_Var26._M_p)->icf_status_ == ICF_NONE)" ( (binary_expression "((General_options *)_Var26._M_p)->icf_status_ == ICF_NONE" (field_expression "((General_options *)_Var26._M_p)->icf_status_" (parenthesized_expression "((General_options *)_Var26._M_p)" ( (cast_expression "(General_options *)_Var26._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) )) -> field_identifier) == identifier) )) (compound_statement "{\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = (Reloc_addend_size_info *)0x0;\n    local_cc = (Offset_info *)0x0;\n    local_dc = (Addend_info *)0x0;\n    local_c8 = (Symbol_info *)0x0;\n    local_bc = (mapped_type *)0x0;\n  }" { (labeled_statement "LAB_0021e40f:\n    local_bd = '\0';" statement_identifier : (expression_statement "local_bd = '\0';" (assignment_expression "local_bd = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_e0 = (Reloc_addend_size_info *)0x0;" (assignment_expression "local_e0 = (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_cc = (Offset_info *)0x0;" (assignment_expression "local_cc = (Offset_info *)0x0" identifier = (cast_expression "(Offset_info *)0x0" ( (type_descriptor "Offset_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_dc = (Addend_info *)0x0;" (assignment_expression "local_dc = (Addend_info *)0x0" identifier = (cast_expression "(Addend_info *)0x0" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = (Symbol_info *)0x0;" (assignment_expression "local_c8 = (Symbol_info *)0x0" identifier = (cast_expression "(Symbol_info *)0x0" ( (type_descriptor "Symbol_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_bc = (mapped_type *)0x0;" (assignment_expression "local_bc = (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_a4 = (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)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef87;\n      sVar16 = strlen(*(char **)((int)ppaVar31 + -0x10));\n      pcVar19 = _Var36._M_p + sVar16;\n    }\n    *(undefined4 *)((int)ppaVar31 + -4) = 0;\n    *(pointer *)((int)ppaVar31 + -8) = pcVar19;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)ppaVar31 + -0xc) = _Var36._M_p;\n    *(Icf **)((int)ppaVar31 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef9f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar20 = 5;\n    bVar37 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppaVar31 + -0x10);\n    bVar39 = ppaVar31 ==\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)0x0;\n    ppuVar32 = local_a8 + -0x67293;\n    pRVar29 = src_id.first;\n    do {\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar27 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n      bVar37 = *(byte *)ppuVar32 < bVar27;\n      bVar39 = *(byte *)ppuVar32 == bVar27;\n      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n      pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n    } while (bVar39);\n    bVar38 = false;\n    bVar37 = (!bVar37 && !bVar39) == bVar37;\n    if (!bVar37) {\n      iVar20 = 0xf;\n      pAVar34 = (Addend_info *)((int)local_a8 + -0x19ca46);\n      pRVar29 = src_id.first;\n      do {\n        unaff_ESI = pAVar34;\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);\n        bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n        bVar27 = *(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start;\n        bVar38 = bVar27 < bVar2;\n        bVar37 = bVar27 == bVar2;\n        pAVar34 = unaff_ESI;\n        pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n      } while (bVar37);\n      if ((!bVar38 && !bVar37) != bVar38) {\n        if (src_id.first == local_a4) {\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (src_id.first != local_a4) {\n      *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f1a9;\n      operator_delete(*(void **)((int)ppaVar31 + -0x10));\n    }\n    *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_a0 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppaVar31 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f014;\n    local_bc = 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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -0xc));\n    unaff_ESI = &local_bc->addend_info;\n    _Var26._M_p = (pointer)&local_bc->offset_info;\n    local_c8 = &local_bc->symbol_info;\n    local_e0 = &local_bc->reloc_addend_size_info;\n    local_dc = unaff_ESI;\n    local_cc = (Offset_info *)_Var26._M_p;\n    pPVar15 = *local_b8;\n    local_bd = '\x01';\n  }" else (compound_statement "{\n    local_a4 = (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)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef87;\n      sVar16 = strlen(*(char **)((int)ppaVar31 + -0x10));\n      pcVar19 = _Var36._M_p + sVar16;\n    }\n    *(undefined4 *)((int)ppaVar31 + -4) = 0;\n    *(pointer *)((int)ppaVar31 + -8) = pcVar19;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)ppaVar31 + -0xc) = _Var36._M_p;\n    *(Icf **)((int)ppaVar31 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef9f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar20 = 5;\n    bVar37 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppaVar31 + -0x10);\n    bVar39 = ppaVar31 ==\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)0x0;\n    ppuVar32 = local_a8 + -0x67293;\n    pRVar29 = src_id.first;\n    do {\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar27 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n      bVar37 = *(byte *)ppuVar32 < bVar27;\n      bVar39 = *(byte *)ppuVar32 == bVar27;\n      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n      pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n    } while (bVar39);\n    bVar38 = false;\n    bVar37 = (!bVar37 && !bVar39) == bVar37;\n    if (!bVar37) {\n      iVar20 = 0xf;\n      pAVar34 = (Addend_info *)((int)local_a8 + -0x19ca46);\n      pRVar29 = src_id.first;\n      do {\n        unaff_ESI = pAVar34;\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);\n        bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n        bVar27 = *(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start;\n        bVar38 = bVar27 < bVar2;\n        bVar37 = bVar27 == bVar2;\n        pAVar34 = unaff_ESI;\n        pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n      } while (bVar37);\n      if ((!bVar38 && !bVar37) != bVar38) {\n        if (src_id.first == local_a4) {\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (src_id.first != local_a4) {\n      *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f1a9;\n      operator_delete(*(void **)((int)ppaVar31 + -0x10));\n    }\n    *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_a0 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppaVar31 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f014;\n    local_bc = 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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -0xc));\n    unaff_ESI = &local_bc->addend_info;\n    _Var26._M_p = (pointer)&local_bc->offset_info;\n    local_c8 = &local_bc->symbol_info;\n    local_e0 = &local_bc->reloc_addend_size_info;\n    local_dc = unaff_ESI;\n    local_cc = (Offset_info *)_Var26._M_p;\n    pPVar15 = *local_b8;\n    local_bd = '\x01';\n  }" { (expression_statement "local_a4 = (Relobj *)&local_2c;" (assignment_expression "local_a4 = (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)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef87;\n      sVar16 = strlen(*(char **)((int)ppaVar31 + -0x10));\n      pcVar19 = _Var36._M_p + sVar16;\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)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef87;\n      sVar16 = strlen(*(char **)((int)ppaVar31 + -0x10));\n      pcVar19 = _Var36._M_p + sVar16;\n    }" { (expression_statement "*(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)ppaVar31 + -0x10)" * (cast_expression "(pointer *)((int)ppaVar31 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (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)ppaVar31 + -0x14) = 0x21ef87;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef87" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar16 = strlen(*(char **)((int)ppaVar31 + -0x10));" (assignment_expression "sVar16 = strlen(*(char **)((int)ppaVar31 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)ppaVar31 + -0x10))" identifier (argument_list "(*(char **)((int)ppaVar31 + -0x10))" ( (pointer_expression "*(char **)((int)ppaVar31 + -0x10)" * (cast_expression "(char **)((int)ppaVar31 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar19 = _Var36._M_p + sVar16;" (assignment_expression "pcVar19 = _Var36._M_p + sVar16" identifier = (binary_expression "_Var36._M_p + sVar16" (field_expression "_Var36._M_p" identifier . field_identifier) + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)ppaVar31 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -4)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -4)" ( (binary_expression "(int)ppaVar31 + -4" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(pointer *)((int)ppaVar31 + -8) = pcVar19;" (assignment_expression "*(pointer *)((int)ppaVar31 + -8) = pcVar19" (pointer_expression "*(pointer *)((int)ppaVar31 + -8)" * (cast_expression "(pointer *)((int)ppaVar31 + -8)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = (Icf *)&src_id;" (assignment_expression "local_a0 = (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)ppaVar31 + -0xc) = _Var36._M_p;" (assignment_expression "*(pointer *)((int)ppaVar31 + -0xc) = _Var36._M_p" (pointer_expression "*(pointer *)((int)ppaVar31 + -0xc)" * (cast_expression "(pointer *)((int)ppaVar31 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "_Var36._M_p" identifier . field_identifier)) ;) (expression_statement "*(Icf **)((int)ppaVar31 + -0x10) = local_a0;" (assignment_expression "*(Icf **)((int)ppaVar31 + -0x10) = local_a0" (pointer_expression "*(Icf **)((int)ppaVar31 + -0x10)" * (cast_expression "(Icf **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef9f;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef9f" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (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 "bVar37 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppaVar31 + -0x10);" (assignment_expression "bVar37 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppaVar31 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)ppaVar31 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)ppaVar31 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar39 = ppaVar31 ==\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)0x0;\n    ppuVar32 = local_a8 + -0x67293;\n    pRVar29 = src_id.first;" (assignment_expression "bVar39 = ppaVar31 ==\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)0x0;\n    ppuVar32 = local_a8 + -0x67293;\n    pRVar29 = src_id.first" identifier = (binary_expression "ppaVar31 ==\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)0x0;\n    ppuVar32 = local_a8 + -0x67293;\n    pRVar29 = src_id.first" identifier == (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)0x0;\n    ppuVar32 = local_a8 + -0x67293;\n    pRVar29 = src_id.first" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)0x0;\n    ppuVar32 = local_a8 + -0x67293;" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_9\n              **)0x0" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n              **)0x0" identifier * (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ; (assignment_expression "ppuVar32 = local_a8 + -0x67293" identifier = (binary_expression "local_a8 + -0x67293" identifier + number_literal)) ;) (assignment_expression "pRVar29 = 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      bVar27 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n      bVar37 = *(byte *)ppuVar32 < bVar27;\n      bVar39 = *(byte *)ppuVar32 == bVar27;\n      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n      pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n    } while (bVar39);" do (compound_statement "{\n      if (iVar20 == 0) break;\n      iVar20 = iVar20 + -1;\n      bVar27 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n      bVar37 = *(byte *)ppuVar32 < bVar27;\n      bVar39 = *(byte *)ppuVar32 == bVar27;\n      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n      pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -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 "bVar27 = *(byte *)&(pRVar29->super_Object)._vptr_Object;" (assignment_expression "bVar27 = *(byte *)&(pRVar29->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar29->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar29->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar29->super_Object)._vptr_Object" & (field_expression "(pRVar29->super_Object)._vptr_Object" (parenthesized_expression "(pRVar29->super_Object)" ( (field_expression "pRVar29->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar37 = *(byte *)ppuVar32 < bVar27;" (assignment_expression "bVar37 = *(byte *)ppuVar32 < bVar27" identifier = (binary_expression "*(byte *)ppuVar32 < bVar27" (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier)) ;) (expression_statement "bVar39 = *(byte *)ppuVar32 == bVar27;" (assignment_expression "bVar39 = *(byte *)ppuVar32 == bVar27" identifier = (binary_expression "*(byte *)ppuVar32 == bVar27" (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier)) ;) (expression_statement "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);" (assignment_expression "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2 + 1" (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2" (cast_expression "(int)ppuVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);" (assignment_expression "pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRVar29 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)pRVar29 + (uint)bVar40 * -2 + 1" (binary_expression "(int)pRVar29 + (uint)bVar40 * -2" (cast_expression "(int)pRVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar39)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar37 = (!bVar37 && !bVar39) == bVar37;" (assignment_expression "bVar37 = (!bVar37 && !bVar39) == bVar37" identifier = (binary_expression "(!bVar37 && !bVar39) == bVar37" (parenthesized_expression "(!bVar37 && !bVar39)" ( (binary_expression "!bVar37 && !bVar39" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar39" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar37) {\n      iVar20 = 0xf;\n      pAVar34 = (Addend_info *)((int)local_a8 + -0x19ca46);\n      pRVar29 = src_id.first;\n      do {\n        unaff_ESI = pAVar34;\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);\n        bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n        bVar27 = *(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start;\n        bVar38 = bVar27 < bVar2;\n        bVar37 = bVar27 == bVar2;\n        pAVar34 = unaff_ESI;\n        pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n      } while (bVar37);\n      if ((!bVar38 && !bVar37) != bVar38) {\n        if (src_id.first == local_a4) {\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }\n        goto LAB_0021e40f;\n      }\n    }" if (parenthesized_expression "(!bVar37)" ( (unary_expression "!bVar37" ! identifier) )) (compound_statement "{\n      iVar20 = 0xf;\n      pAVar34 = (Addend_info *)((int)local_a8 + -0x19ca46);\n      pRVar29 = src_id.first;\n      do {\n        unaff_ESI = pAVar34;\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);\n        bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n        bVar27 = *(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start;\n        bVar38 = bVar27 < bVar2;\n        bVar37 = bVar27 == bVar2;\n        pAVar34 = unaff_ESI;\n        pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n      } while (bVar37);\n      if ((!bVar38 && !bVar37) != bVar38) {\n        if (src_id.first == local_a4) {\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }\n        goto LAB_0021e40f;\n      }\n    }" { (expression_statement "iVar20 = 0xf;" (assignment_expression "iVar20 = 0xf" identifier = number_literal) ;) (expression_statement "pAVar34 = (Addend_info *)((int)local_a8 + -0x19ca46);" (assignment_expression "pAVar34 = (Addend_info *)((int)local_a8 + -0x19ca46)" identifier = (cast_expression "(Addend_info *)((int)local_a8 + -0x19ca46)" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19ca46)" ( (binary_expression "(int)local_a8 + -0x19ca46" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pRVar29 = src_id.first;" (assignment_expression "pRVar29 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n        unaff_ESI = pAVar34;\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);\n        bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n        bVar27 = *(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start;\n        bVar38 = bVar27 < bVar2;\n        bVar37 = bVar27 == bVar2;\n        pAVar34 = unaff_ESI;\n        pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n      } while (bVar37);" do (compound_statement "{\n        unaff_ESI = pAVar34;\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);\n        bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;\n        bVar27 = *(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start;\n        bVar38 = bVar27 < bVar2;\n        bVar37 = bVar27 == bVar2;\n        pAVar34 = unaff_ESI;\n        pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);\n      }" { (expression_statement "unaff_ESI = pAVar34;" (assignment_expression "unaff_ESI = pAVar34" identifier = identifier) ;) (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 "unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);" (assignment_expression "unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pAVar34 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)pAVar34 + (uint)bVar40 * -2 + 1" (binary_expression "(int)pAVar34 + (uint)bVar40 * -2" (cast_expression "(int)pAVar34" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;" (assignment_expression "bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar29->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar29->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar29->super_Object)._vptr_Object" & (field_expression "(pRVar29->super_Object)._vptr_Object" (parenthesized_expression "(pRVar29->super_Object)" ( (field_expression "pRVar29->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar27 = *(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start;" (assignment_expression "bVar27 = *(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start" identifier = (pointer_expression "*(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start" * (cast_expression "(byte *)&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start" & (field_expression "(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl._M_start" (field_expression "(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )._M_impl" (parenthesized_expression "(pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                           )" ( (ERROR "pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::" (comma_expression "pAVar34->\n                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std" (binary_expression "pAVar34->\n                           super__Vector_base<std::pair<long_long_int" (binary_expression "pAVar34->\n                           super__Vector_base<std" (field_expression "pAVar34->\n                           super__Vector_base" identifier -> field_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>_>_" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier))))) ;) (expression_statement "bVar38 = bVar27 < bVar2;" (assignment_expression "bVar38 = bVar27 < bVar2" identifier = (binary_expression "bVar27 < bVar2" identifier < identifier)) ;) (expression_statement "bVar37 = bVar27 == bVar2;" (assignment_expression "bVar37 = bVar27 == bVar2" identifier = (binary_expression "bVar27 == bVar2" identifier == identifier)) ;) (expression_statement "pAVar34 = unaff_ESI;" (assignment_expression "pAVar34 = unaff_ESI" identifier = identifier) ;) (expression_statement "pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);" (assignment_expression "pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRVar29 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)pRVar29 + (uint)bVar40 * -2 + 1" (binary_expression "(int)pRVar29 + (uint)bVar40 * -2" (cast_expression "(int)pRVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar37)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar37) != bVar38) {\n        if (src_id.first == local_a4) {\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }\n        goto LAB_0021e40f;\n      }" if (parenthesized_expression "((!bVar38 && !bVar37) != bVar38)" ( (binary_expression "(!bVar38 && !bVar37) != bVar38" (parenthesized_expression "(!bVar38 && !bVar37)" ( (binary_expression "!bVar38 && !bVar37" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar37" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (src_id.first == local_a4) {\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }\n        goto LAB_0021e40f;\n      }" { (if_statement "if (src_id.first == local_a4) {\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }" if (parenthesized_expression "(src_id.first == local_a4)" ( (binary_expression "src_id.first == local_a4" (field_expression "src_id.first" identifier . field_identifier) == identifier) )) (compound_statement "{\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)src_id.first;\n        }" { (expression_statement "pPVar15 = *local_b8;" (assignment_expression "pPVar15 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "_Var26._M_p = (pointer)src_id.first;" (assignment_expression "_Var26._M_p = (pointer)src_id.first" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)src_id.first" ( (type_descriptor "pointer" type_identifier) ) (field_expression "src_id.first" identifier . field_identifier))) ;) }) (else_clause "else {\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }" else (compound_statement "{\n          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;\n          operator_delete(*(void **)((int)ppaVar31 + -0x10));\n          pPVar15 = *local_b8;\n          _Var26._M_p = (pointer)extraout_EDX_06;\n        }" { (expression_statement "*(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;" (assignment_expression "*(Relobj **)((int)ppaVar31 + -0x10) = src_id.first" (pointer_expression "*(Relobj **)((int)ppaVar31 + -0x10)" * (cast_expression "(Relobj **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppaVar31 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppaVar31 + -0x10))" identifier (argument_list "(*(void **)((int)ppaVar31 + -0x10))" ( (pointer_expression "*(void **)((int)ppaVar31 + -0x10)" * (cast_expression "(void **)((int)ppaVar31 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pPVar15 = *local_b8;" (assignment_expression "pPVar15 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "_Var26._M_p = (pointer)extraout_EDX_06;" (assignment_expression "_Var26._M_p = (pointer)extraout_EDX_06" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_06" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }))) (goto_statement "goto LAB_0021e40f;" goto statement_identifier ;) })) })) (if_statement "if (src_id.first != local_a4) {\n      *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f1a9;\n      operator_delete(*(void **)((int)ppaVar31 + -0x10));\n    }" if (parenthesized_expression "(src_id.first != local_a4)" ( (binary_expression "src_id.first != local_a4" (field_expression "src_id.first" identifier . field_identifier) != identifier) )) (compound_statement "{\n      *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f1a9;\n      operator_delete(*(void **)((int)ppaVar31 + -0x10));\n    }" { (expression_statement "*(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;" (assignment_expression "*(Relobj **)((int)ppaVar31 + -0x10) = src_id.first" (pointer_expression "*(Relobj **)((int)ppaVar31 + -0x10)" * (cast_expression "(Relobj **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f1a9;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f1a9" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppaVar31 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppaVar31 + -0x10))" identifier (argument_list "(*(void **)((int)ppaVar31 + -0x10))" ( (pointer_expression "*(void **)((int)ppaVar31 + -0x10)" * (cast_expression "(void **)((int)ppaVar31 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "*(Icf **)((int)ppaVar31 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)ppaVar31 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)ppaVar31 + -0xc)" * (cast_expression "(Icf **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (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_a0 = symtab->icf_;" (assignment_expression "local_a0 = symtab->icf_" identifier = (field_expression "symtab->icf_" identifier -> field_identifier)) ;) (expression_statement "*(Reloc_info_list **)((int)ppaVar31 + -0x10) = &symtab->icf_->reloc_info_list_;" (assignment_expression "*(Reloc_info_list **)((int)ppaVar31 + -0x10) = &symtab->icf_->reloc_info_list_" (pointer_expression "*(Reloc_info_list **)((int)ppaVar31 + -0x10)" * (cast_expression "(Reloc_info_list **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Reloc_info_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (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)ppaVar31 + -0x14) = 0x21f014;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f014" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_bc = 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_bc = 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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -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)ppaVar31 + -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)ppaVar31 + -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)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(key_type **)((int)ppaVar31 + -0xc)" * (cast_expression "(key_type **)((int)ppaVar31 + -0xc)" ( (type_descriptor "key_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))))) ;))))) (expression_statement "unaff_ESI = &local_bc->addend_info;" (assignment_expression "unaff_ESI = &local_bc->addend_info" identifier = (pointer_expression "&local_bc->addend_info" & (field_expression "local_bc->addend_info" identifier -> field_identifier))) ;) (expression_statement "_Var26._M_p = (pointer)&local_bc->offset_info;" (assignment_expression "_Var26._M_p = (pointer)&local_bc->offset_info" (field_expression "_Var26._M_p" identifier . field_identifier) = (binary_expression "(pointer)&local_bc->offset_info" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "local_bc->offset_info" identifier -> field_identifier))) ;) (expression_statement "local_c8 = &local_bc->symbol_info;" (assignment_expression "local_c8 = &local_bc->symbol_info" identifier = (pointer_expression "&local_bc->symbol_info" & (field_expression "local_bc->symbol_info" identifier -> field_identifier))) ;) (expression_statement "local_e0 = &local_bc->reloc_addend_size_info;" (assignment_expression "local_e0 = &local_bc->reloc_addend_size_info" identifier = (pointer_expression "&local_bc->reloc_addend_size_info" & (field_expression "local_bc->reloc_addend_size_info" identifier -> field_identifier))) ;) (expression_statement "local_dc = unaff_ESI;" (assignment_expression "local_dc = unaff_ESI" identifier = identifier) ;) (expression_statement "local_cc = (Offset_info *)_Var26._M_p;" (assignment_expression "local_cc = (Offset_info *)_Var26._M_p" identifier = (cast_expression "(Offset_info *)_Var26._M_p" ( (type_descriptor "Offset_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier))) ;) (expression_statement "pPVar15 = *local_b8;" (assignment_expression "pPVar15 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "local_bd = '\x01';" (assignment_expression "local_bd = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (if_statement "if (pPVar15->options_ == (General_options *)0x0) {\n    *(Addend_info **)((int)ppaVar31 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f155;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -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    *(Addend_info **)((int)ppaVar31 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f155;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8));\n  }" { (expression_statement "*(Addend_info **)((int)ppaVar31 + -4) = unaff_ESI;" (assignment_expression "*(Addend_info **)((int)ppaVar31 + -4) = unaff_ESI" (pointer_expression "*(Addend_info **)((int)ppaVar31 + -4)" * (cast_expression "(Addend_info **)((int)ppaVar31 + -4)" ( (type_descriptor "Addend_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -4)" ( (binary_expression "(int)ppaVar31 + -4" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppaVar31 + -8)" * (cast_expression "(undefined ***)((int)ppaVar31 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0xc)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppaVar31 + -0x10)" * (cast_expression "(int *)((int)ppaVar31 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f155;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f155" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8));" (call_expression "do_gold_unreachable\n              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8))" identifier (argument_list "(*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n               *(char **)((int)ppaVar31 + -8))" ( (pointer_expression "*(char **)((int)ppaVar31 + -0x10)" * (cast_expression "(char **)((int)ppaVar31 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppaVar31 + -0xc)" * (cast_expression "(int *)((int)ppaVar31 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppaVar31 + -8)" * (cast_expression "(char **)((int)ppaVar31 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "local_be = false;" (assignment_expression "local_be = false" identifier = false) ;) (if_statement "if (pPVar15->options_->icf_status_ == ICF_SAFE) {\n    *(Target_s390<32> **)((int)ppaVar31 + -0x10) = this;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eeab;\n    local_be = do_can_check_for_function_pointers(*(Target_s390<32> **)((int)ppaVar31 + -0x10));\n    bVar37 = false;\n    bVar39 = !local_be;\n    _Var26._M_p = (pointer)extraout_EDX_05;\n    if (!bVar39) {\n      iVar20 = 0xc;\n      local_be = false;\n      ppuVar32 = local_a8 + -0x66894;\n      _Var26 = src_section_name._M_dataplus;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p;\n        bVar39 = *(byte *)ppuVar32 == *_Var26._M_p;\n        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1);\n      } while (bVar39);\n      bVar38 = false;\n      bVar37 = (!bVar37 && !bVar39) == bVar37;\n      _Var26 = src_section_name._M_dataplus;\n      if (!bVar37) {\n        iVar20 = 0x11;\n        pbVar33 = (byte *)((int)local_a8 + -0x19a243);\n        _Var36 = src_section_name._M_dataplus;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar38 = *pbVar33 < (byte)*_Var36._M_p;\n          bVar37 = *pbVar33 == *_Var36._M_p;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n        } while (bVar37);\n        bVar39 = false;\n        bVar37 = (!bVar38 && !bVar37) == bVar38;\n        if (!bVar37) {\n          iVar20 = 0xc;\n          pbVar33 = (byte *)((int)local_a8 + -0x19a231);\n          _Var36 = src_section_name._M_dataplus;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          bVar38 = false;\n          bVar37 = (!bVar39 && !bVar37) == bVar39;\n          if (!bVar37) {\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(pPVar15->options_->icf_status_ == ICF_SAFE)" ( (binary_expression "pPVar15->options_->icf_status_ == ICF_SAFE" (field_expression "pPVar15->options_->icf_status_" (field_expression "pPVar15->options_" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n    *(Target_s390<32> **)((int)ppaVar31 + -0x10) = this;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eeab;\n    local_be = do_can_check_for_function_pointers(*(Target_s390<32> **)((int)ppaVar31 + -0x10));\n    bVar37 = false;\n    bVar39 = !local_be;\n    _Var26._M_p = (pointer)extraout_EDX_05;\n    if (!bVar39) {\n      iVar20 = 0xc;\n      local_be = false;\n      ppuVar32 = local_a8 + -0x66894;\n      _Var26 = src_section_name._M_dataplus;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p;\n        bVar39 = *(byte *)ppuVar32 == *_Var26._M_p;\n        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1);\n      } while (bVar39);\n      bVar38 = false;\n      bVar37 = (!bVar37 && !bVar39) == bVar37;\n      _Var26 = src_section_name._M_dataplus;\n      if (!bVar37) {\n        iVar20 = 0x11;\n        pbVar33 = (byte *)((int)local_a8 + -0x19a243);\n        _Var36 = src_section_name._M_dataplus;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar38 = *pbVar33 < (byte)*_Var36._M_p;\n          bVar37 = *pbVar33 == *_Var36._M_p;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n        } while (bVar37);\n        bVar39 = false;\n        bVar37 = (!bVar38 && !bVar37) == bVar38;\n        if (!bVar37) {\n          iVar20 = 0xc;\n          pbVar33 = (byte *)((int)local_a8 + -0x19a231);\n          _Var36 = src_section_name._M_dataplus;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          bVar38 = false;\n          bVar37 = (!bVar39 && !bVar37) == bVar39;\n          if (!bVar37) {\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "*(Target_s390<32> **)((int)ppaVar31 + -0x10) = this;" (assignment_expression "*(Target_s390<32> **)((int)ppaVar31 + -0x10) = this" (pointer_expression "*(Target_s390<32> **)((int)ppaVar31 + -0x10)" * (call_expression "(Target_s390<32> **)((int)ppaVar31 + -0x10)" (parenthesized_expression "(Target_s390<32> **)" ( (binary_expression "Target_s390<32> **" (binary_expression "Target_s390<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eeab;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eeab" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_be = do_can_check_for_function_pointers(*(Target_s390<32> **)((int)ppaVar31 + -0x10));" (assignment_expression "local_be = do_can_check_for_function_pointers(*(Target_s390<32> **)((int)ppaVar31 + -0x10))" identifier = (call_expression "do_can_check_for_function_pointers(*(Target_s390<32> **)((int)ppaVar31 + -0x10))" identifier (argument_list "(*(Target_s390<32> **)((int)ppaVar31 + -0x10))" ( (pointer_expression "*(Target_s390<32> **)((int)ppaVar31 + -0x10)" * (call_expression "(Target_s390<32> **)((int)ppaVar31 + -0x10)" (parenthesized_expression "(Target_s390<32> **)" ( (binary_expression "Target_s390<32> **" (binary_expression "Target_s390<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar39 = !local_be;" (assignment_expression "bVar39 = !local_be" identifier = (unary_expression "!local_be" ! identifier)) ;) (expression_statement "_Var26._M_p = (pointer)extraout_EDX_05;" (assignment_expression "_Var26._M_p = (pointer)extraout_EDX_05" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_05" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (!bVar39) {\n      iVar20 = 0xc;\n      local_be = false;\n      ppuVar32 = local_a8 + -0x66894;\n      _Var26 = src_section_name._M_dataplus;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p;\n        bVar39 = *(byte *)ppuVar32 == *_Var26._M_p;\n        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1);\n      } while (bVar39);\n      bVar38 = false;\n      bVar37 = (!bVar37 && !bVar39) == bVar37;\n      _Var26 = src_section_name._M_dataplus;\n      if (!bVar37) {\n        iVar20 = 0x11;\n        pbVar33 = (byte *)((int)local_a8 + -0x19a243);\n        _Var36 = src_section_name._M_dataplus;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar38 = *pbVar33 < (byte)*_Var36._M_p;\n          bVar37 = *pbVar33 == *_Var36._M_p;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n        } while (bVar37);\n        bVar39 = false;\n        bVar37 = (!bVar38 && !bVar37) == bVar38;\n        if (!bVar37) {\n          iVar20 = 0xc;\n          pbVar33 = (byte *)((int)local_a8 + -0x19a231);\n          _Var36 = src_section_name._M_dataplus;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          bVar38 = false;\n          bVar37 = (!bVar39 && !bVar37) == bVar39;\n          if (!bVar37) {\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar39)" ( (unary_expression "!bVar39" ! identifier) )) (compound_statement "{\n      iVar20 = 0xc;\n      local_be = false;\n      ppuVar32 = local_a8 + -0x66894;\n      _Var26 = src_section_name._M_dataplus;\n      do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p;\n        bVar39 = *(byte *)ppuVar32 == *_Var26._M_p;\n        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1);\n      } while (bVar39);\n      bVar38 = false;\n      bVar37 = (!bVar37 && !bVar39) == bVar37;\n      _Var26 = src_section_name._M_dataplus;\n      if (!bVar37) {\n        iVar20 = 0x11;\n        pbVar33 = (byte *)((int)local_a8 + -0x19a243);\n        _Var36 = src_section_name._M_dataplus;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar38 = *pbVar33 < (byte)*_Var36._M_p;\n          bVar37 = *pbVar33 == *_Var36._M_p;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n        } while (bVar37);\n        bVar39 = false;\n        bVar37 = (!bVar38 && !bVar37) == bVar38;\n        if (!bVar37) {\n          iVar20 = 0xc;\n          pbVar33 = (byte *)((int)local_a8 + -0x19a231);\n          _Var36 = src_section_name._M_dataplus;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          bVar38 = false;\n          bVar37 = (!bVar39 && !bVar37) == bVar39;\n          if (!bVar37) {\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar20 = 0xc;" (assignment_expression "iVar20 = 0xc" identifier = number_literal) ;) (expression_statement "local_be = false;" (assignment_expression "local_be = false" identifier = false) ;) (expression_statement "ppuVar32 = local_a8 + -0x66894;" (assignment_expression "ppuVar32 = local_a8 + -0x66894" identifier = (binary_expression "local_a8 + -0x66894" identifier + number_literal)) ;) (expression_statement "_Var26 = src_section_name._M_dataplus;" (assignment_expression "_Var26 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p;\n        bVar39 = *(byte *)ppuVar32 == *_Var26._M_p;\n        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1);\n      } while (bVar39);" do (compound_statement "{\n        if (iVar20 == 0) break;\n        iVar20 = iVar20 + -1;\n        bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p;\n        bVar39 = *(byte *)ppuVar32 == *_Var26._M_p;\n        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -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 "bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p;" (assignment_expression "bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p" identifier = (binary_expression "*(byte *)ppuVar32 < (byte)*_Var26._M_p" (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*_Var26._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar39 = *(byte *)ppuVar32 == *_Var26._M_p;" (assignment_expression "bVar39 = *(byte *)ppuVar32 == *_Var26._M_p" identifier = (binary_expression "*(byte *)ppuVar32 == *_Var26._M_p" (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*_Var26._M_p" * (field_expression "_Var26._M_p" identifier . field_identifier)))) ;) (expression_statement "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);" (assignment_expression "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2 + 1" (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2" (cast_expression "(int)ppuVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1);" (assignment_expression "_Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1)" (field_expression "_Var26._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1)" ( (binary_expression "(byte *)_Var26._M_p + (uint)bVar40 * -2 + 1" (binary_expression "(byte *)_Var26._M_p + (uint)bVar40 * -2" (cast_expression "(byte *)_Var26._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar39)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar37 = (!bVar37 && !bVar39) == bVar37;" (assignment_expression "bVar37 = (!bVar37 && !bVar39) == bVar37" identifier = (binary_expression "(!bVar37 && !bVar39) == bVar37" (parenthesized_expression "(!bVar37 && !bVar39)" ( (binary_expression "!bVar37 && !bVar39" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar39" ! identifier)) )) == identifier)) ;) (expression_statement "_Var26 = src_section_name._M_dataplus;" (assignment_expression "_Var26 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (if_statement "if (!bVar37) {\n        iVar20 = 0x11;\n        pbVar33 = (byte *)((int)local_a8 + -0x19a243);\n        _Var36 = src_section_name._M_dataplus;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar38 = *pbVar33 < (byte)*_Var36._M_p;\n          bVar37 = *pbVar33 == *_Var36._M_p;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n        } while (bVar37);\n        bVar39 = false;\n        bVar37 = (!bVar38 && !bVar37) == bVar38;\n        if (!bVar37) {\n          iVar20 = 0xc;\n          pbVar33 = (byte *)((int)local_a8 + -0x19a231);\n          _Var36 = src_section_name._M_dataplus;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          bVar38 = false;\n          bVar37 = (!bVar39 && !bVar37) == bVar39;\n          if (!bVar37) {\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar37)" ( (unary_expression "!bVar37" ! identifier) )) (compound_statement "{\n        iVar20 = 0x11;\n        pbVar33 = (byte *)((int)local_a8 + -0x19a243);\n        _Var36 = src_section_name._M_dataplus;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar38 = *pbVar33 < (byte)*_Var36._M_p;\n          bVar37 = *pbVar33 == *_Var36._M_p;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n        } while (bVar37);\n        bVar39 = false;\n        bVar37 = (!bVar38 && !bVar37) == bVar38;\n        if (!bVar37) {\n          iVar20 = 0xc;\n          pbVar33 = (byte *)((int)local_a8 + -0x19a231);\n          _Var36 = src_section_name._M_dataplus;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          bVar38 = false;\n          bVar37 = (!bVar39 && !bVar37) == bVar39;\n          if (!bVar37) {\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }\n        }\n      }" { (expression_statement "iVar20 = 0x11;" (assignment_expression "iVar20 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar33 = (byte *)((int)local_a8 + -0x19a243);" (assignment_expression "pbVar33 = (byte *)((int)local_a8 + -0x19a243)" identifier = (cast_expression "(byte *)((int)local_a8 + -0x19a243)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19a243)" ( (binary_expression "(int)local_a8 + -0x19a243" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "_Var36 = src_section_name._M_dataplus;" (assignment_expression "_Var36 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar38 = *pbVar33 < (byte)*_Var36._M_p;\n          bVar37 = *pbVar33 == *_Var36._M_p;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n        } while (bVar37);" do (compound_statement "{\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar38 = *pbVar33 < (byte)*_Var36._M_p;\n          bVar37 = *pbVar33 == *_Var36._M_p;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -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 "bVar38 = *pbVar33 < (byte)*_Var36._M_p;" (assignment_expression "bVar38 = *pbVar33 < (byte)*_Var36._M_p" identifier = (binary_expression "*pbVar33 < (byte)*_Var36._M_p" (pointer_expression "*pbVar33" * identifier) < (binary_expression "(byte)*_Var36._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var36._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar37 = *pbVar33 == *_Var36._M_p;" (assignment_expression "bVar37 = *pbVar33 == *_Var36._M_p" identifier = (binary_expression "*pbVar33 == *_Var36._M_p" (pointer_expression "*pbVar33" * identifier) == (pointer_expression "*_Var36._M_p" * (field_expression "_Var36._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar33 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);" (assignment_expression "_Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" (field_expression "_Var36._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" ( (binary_expression "(byte *)_Var36._M_p + (uint)bVar40 * -2 + 1" (binary_expression "(byte *)_Var36._M_p + (uint)bVar40 * -2" (cast_expression "(byte *)_Var36._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var36._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar37)" ( identifier )) ;) (expression_statement "bVar39 = false;" (assignment_expression "bVar39 = false" identifier = false) ;) (expression_statement "bVar37 = (!bVar38 && !bVar37) == bVar38;" (assignment_expression "bVar37 = (!bVar38 && !bVar37) == bVar38" identifier = (binary_expression "(!bVar38 && !bVar37) == bVar38" (parenthesized_expression "(!bVar38 && !bVar37)" ( (binary_expression "!bVar38 && !bVar37" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar37" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar37) {\n          iVar20 = 0xc;\n          pbVar33 = (byte *)((int)local_a8 + -0x19a231);\n          _Var36 = src_section_name._M_dataplus;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          bVar38 = false;\n          bVar37 = (!bVar39 && !bVar37) == bVar39;\n          if (!bVar37) {\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar37)" ( (unary_expression "!bVar37" ! identifier) )) (compound_statement "{\n          iVar20 = 0xc;\n          pbVar33 = (byte *)((int)local_a8 + -0x19a231);\n          _Var36 = src_section_name._M_dataplus;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          bVar38 = false;\n          bVar37 = (!bVar39 && !bVar37) == bVar39;\n          if (!bVar37) {\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }\n        }" { (expression_statement "iVar20 = 0xc;" (assignment_expression "iVar20 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar33 = (byte *)((int)local_a8 + -0x19a231);" (assignment_expression "pbVar33 = (byte *)((int)local_a8 + -0x19a231)" identifier = (cast_expression "(byte *)((int)local_a8 + -0x19a231)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19a231)" ( (binary_expression "(int)local_a8 + -0x19a231" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "_Var36 = src_section_name._M_dataplus;" (assignment_expression "_Var36 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n          } while (bVar37);" do (compound_statement "{\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n            bVar37 = *pbVar33 == *_Var36._M_p;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -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 "bVar39 = *pbVar33 < (byte)*_Var36._M_p;" (assignment_expression "bVar39 = *pbVar33 < (byte)*_Var36._M_p" identifier = (binary_expression "*pbVar33 < (byte)*_Var36._M_p" (pointer_expression "*pbVar33" * identifier) < (binary_expression "(byte)*_Var36._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var36._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar37 = *pbVar33 == *_Var36._M_p;" (assignment_expression "bVar37 = *pbVar33 == *_Var36._M_p" identifier = (binary_expression "*pbVar33 == *_Var36._M_p" (pointer_expression "*pbVar33" * identifier) == (pointer_expression "*_Var36._M_p" * (field_expression "_Var36._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar33 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);" (assignment_expression "_Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" (field_expression "_Var36._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" ( (binary_expression "(byte *)_Var36._M_p + (uint)bVar40 * -2 + 1" (binary_expression "(byte *)_Var36._M_p + (uint)bVar40 * -2" (cast_expression "(byte *)_Var36._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var36._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar37)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar37 = (!bVar39 && !bVar37) == bVar39;" (assignment_expression "bVar37 = (!bVar39 && !bVar37) == bVar39" identifier = (binary_expression "(!bVar39 && !bVar37) == bVar39" (parenthesized_expression "(!bVar39 && !bVar37)" ( (binary_expression "!bVar39 && !bVar37" (unary_expression "!bVar39" ! identifier) && (unary_expression "!bVar37" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar37) {\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }" if (parenthesized_expression "(!bVar37)" ( (unary_expression "!bVar37" ! identifier) )) (compound_statement "{\n            iVar20 = 0x11;\n            ppuVar32 = local_a8 + -0x66889;\n            _Var36 = src_section_name._M_dataplus;\n            do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);\n            bVar39 = false;\n            bVar37 = (!bVar38 && !bVar37) == bVar38;\n            if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }\n          }" { (expression_statement "iVar20 = 0x11;" (assignment_expression "iVar20 = 0x11" identifier = number_literal) ;) (expression_statement "ppuVar32 = local_a8 + -0x66889;" (assignment_expression "ppuVar32 = local_a8 + -0x66889" identifier = (binary_expression "local_a8 + -0x66889" identifier + number_literal)) ;) (expression_statement "_Var36 = src_section_name._M_dataplus;" (assignment_expression "_Var36 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n            } while (bVar37);" do (compound_statement "{\n              if (iVar20 == 0) break;\n              iVar20 = iVar20 + -1;\n              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;\n              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;\n              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -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 "bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;" (assignment_expression "bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p" identifier = (binary_expression "*(byte *)ppuVar32 < (byte)*_Var36._M_p" (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*_Var36._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var36._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;" (assignment_expression "bVar37 = *(byte *)ppuVar32 == *_Var36._M_p" identifier = (binary_expression "*(byte *)ppuVar32 == *_Var36._M_p" (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*_Var36._M_p" * (field_expression "_Var36._M_p" identifier . field_identifier)))) ;) (expression_statement "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);" (assignment_expression "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2 + 1" (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2" (cast_expression "(int)ppuVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "_Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);" (assignment_expression "_Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" (field_expression "_Var36._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" ( (binary_expression "(byte *)_Var36._M_p + (uint)bVar40 * -2 + 1" (binary_expression "(byte *)_Var36._M_p + (uint)bVar40 * -2" (cast_expression "(byte *)_Var36._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var36._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar37)" ( identifier )) ;) (expression_statement "bVar39 = false;" (assignment_expression "bVar39 = false" identifier = false) ;) (expression_statement "bVar37 = (!bVar38 && !bVar37) == bVar38;" (assignment_expression "bVar37 = (!bVar38 && !bVar37) == bVar38" identifier = (binary_expression "(!bVar38 && !bVar37) == bVar38" (parenthesized_expression "(!bVar38 && !bVar37)" ( (binary_expression "!bVar38 && !bVar37" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar37" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar37) {\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }" if (parenthesized_expression "(!bVar37)" ( (unary_expression "!bVar37" ! identifier) )) (compound_statement "{\n              iVar20 = 9;\n              pbVar33 = (byte *)((int)local_a8 + -0x19a212);\n              _Var36 = src_section_name._M_dataplus;\n              do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);\n              local_be = (!bVar39 && !bVar37) != bVar39;\n            }" { (expression_statement "iVar20 = 9;" (assignment_expression "iVar20 = 9" identifier = number_literal) ;) (expression_statement "pbVar33 = (byte *)((int)local_a8 + -0x19a212);" (assignment_expression "pbVar33 = (byte *)((int)local_a8 + -0x19a212)" identifier = (cast_expression "(byte *)((int)local_a8 + -0x19a212)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19a212)" ( (binary_expression "(int)local_a8 + -0x19a212" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "_Var36 = src_section_name._M_dataplus;" (assignment_expression "_Var36 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);\n              } while (bVar37);" do (compound_statement "{\n                if (iVar20 == 0) break;\n                iVar20 = iVar20 + -1;\n                bVar39 = *pbVar33 < (byte)*_Var36._M_p;\n                bVar37 = *pbVar33 == *_Var36._M_p;\n                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -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 "bVar39 = *pbVar33 < (byte)*_Var36._M_p;" (assignment_expression "bVar39 = *pbVar33 < (byte)*_Var36._M_p" identifier = (binary_expression "*pbVar33 < (byte)*_Var36._M_p" (pointer_expression "*pbVar33" * identifier) < (binary_expression "(byte)*_Var36._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var36._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar37 = *pbVar33 == *_Var36._M_p;" (assignment_expression "bVar37 = *pbVar33 == *_Var36._M_p" identifier = (binary_expression "*pbVar33 == *_Var36._M_p" (pointer_expression "*pbVar33" * identifier) == (pointer_expression "*_Var36._M_p" * (field_expression "_Var36._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar33 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);" (assignment_expression "_Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" (field_expression "_Var36._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1)" ( (binary_expression "(byte *)_Var36._M_p + (uint)bVar40 * -2 + 1" (binary_expression "(byte *)_Var36._M_p + (uint)bVar40 * -2" (cast_expression "(byte *)_Var36._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var36._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar37)" ( identifier )) ;) (expression_statement "local_be = (!bVar39 && !bVar37) != bVar39;" (assignment_expression "local_be = (!bVar39 && !bVar37) != bVar39" identifier = (binary_expression "(!bVar39 && !bVar37) != bVar39" (parenthesized_expression "(!bVar39 && !bVar37)" ( (binary_expression "!bVar39 && !bVar37" (unary_expression "!bVar39" ! identifier) && (unary_expression "!bVar37" ! identifier)) )) != identifier)) ;) })) })) })) })) })) })) if (parenthesized_expression "(reloc_count != 0)" ( (binary_expression "reloc_count != 0" identifier != number_literal) )) { (expression_statement "local_c4 = (_func_int_varargs **)0x0;" (assignment_expression "local_c4 = (_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_d0 = local_94;" (assignment_expression "local_d0 = local_94" identifier = identifier) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_e8 = &__node_gen;" (assignment_expression "local_e8 = &__node_gen" identifier = (pointer_expression "&__node_gen" & identifier)) ;) do { (expression_statement "uVar6 = *(uint *)(prelocs + 4);" (assignment_expression "uVar6 = *(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 "local_e4 = uVar6 >> 0x18;" (assignment_expression "local_e4 = uVar6 >> 0x18" identifier = (binary_expression "uVar6 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar28 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;" (assignment_expression "uVar28 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8" identifier = (binary_expression "((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8" (parenthesized_expression "((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18)" ( (binary_expression "(uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "(uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal)) )) >> number_literal)) ;) (expression_statement "uVar6 = *(uint *)(prelocs + 8);" (assignment_expression "uVar6 = *(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_ac = (pointer)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                          uVar6 << 0x18);" (assignment_expression "local_ac = (pointer)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                          uVar6 << 0x18)" identifier = (call_expression "(pointer)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                          uVar6 << 0x18)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                          uVar6 << 0x18)" ( (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                          uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal)) )))) ;) if (parenthesized_expression "(uVar28 < param_10)" ( (binary_expression "uVar28 < param_10" identifier < identifier) )) { (if_statement "if (plocal_symbols == (uchar *)0x0) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0xea;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0a4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\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          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0xea;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0a4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }" { (expression_statement "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;" (assignment_expression "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da" (pointer_expression "*(undefined ***)((int)ppaVar31 + -8)" * (cast_expression "(undefined ***)((int)ppaVar31 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x596da" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0xc)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;" (assignment_expression "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36" (pointer_expression "*(int *)((int)ppaVar31 + -0x10)" * (cast_expression "(int *)((int)ppaVar31 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x19ca36" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0a4;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0a4" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));" (call_expression "do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8))" identifier (argument_list "(*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8))" ( (pointer_expression "*(char **)((int)ppaVar31 + -0x10)" * (cast_expression "(char **)((int)ppaVar31 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppaVar31 + -0xc)" * (cast_expression "(int *)((int)ppaVar31 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppaVar31 + -8)" * (cast_expression "(char **)((int)ppaVar31 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "local_a4 = (Relobj *)\n                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) >> 8);" (assignment_expression "local_a4 = (Relobj *)\n                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) >> 8)" identifier = (cast_expression "(Relobj *)\n                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) >> 8)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(ushort)(*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) >> 8)" ( (binary_expression "*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) << 8 |\n                                 *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) >> 8" (binary_expression "*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) << 8" (pointer_expression "*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe)" * (cast_expression "(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar28 * 0x10 + 0xe)" ( (binary_expression "plocal_symbols + uVar28 * 0x10 + 0xe" (binary_expression "plocal_symbols + uVar28 * 0x10" identifier + (binary_expression "uVar28 * 0x10" identifier * number_literal)) + number_literal) )))) << number_literal) | (binary_expression "*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) >> 8" (pointer_expression "*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe)" * (cast_expression "(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar28 * 0x10 + 0xe)" ( (binary_expression "plocal_symbols + uVar28 * 0x10 + 0xe" (binary_expression "plocal_symbols + uVar28 * 0x10" identifier + (binary_expression "uVar28 * 0x10" identifier * number_literal)) + number_literal) )))) >> number_literal)) ))))) ;) (if_statement "if (local_a4 < (Relobj *)0xff00) {\nLAB_0021e61b:\n          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);\n          pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    );\n          local_b4 = (int)&local_ac->first + (int)pRVar29;\n          if (local_bd != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a4;\n            *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e662;\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                         **)((int)ppaVar31 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n            bVar37 = true;\n            if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e694;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;\n              p_Var11 = pp_Var17[0x1b];\n              *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            *(uint *)((int)ppaVar31 + -8) = uVar28;\n            *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc) = object;\n            *(Xindex **)((int)ppaVar31 + -0x10) = pXVar18;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e719;\n            local_a4 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppaVar31 + -0x10),\n                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8));\n            _Var26._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0021e61b;\n          }\n          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);\n          pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    );\n          local_b4 = (int)&local_ac->first + (int)pRVar29;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e4f1;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          bVar37 = false;\n          if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e520;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));\nLAB_0021e520:\n          src_id.first = pRVar29;\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          local_2c = local_ac;\n          src_id.second = 0;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e550;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed65;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e598;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX;\n          if (!bVar37) goto LAB_0021e5a5;\n        }" if (parenthesized_expression "(local_a4 < (Relobj *)0xff00)" ( (binary_expression "local_a4 < (Relobj *)0xff00" identifier < (cast_expression "(Relobj *)0xff00" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0021e61b:\n          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);\n          pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    );\n          local_b4 = (int)&local_ac->first + (int)pRVar29;\n          if (local_bd != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a4;\n            *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e662;\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                         **)((int)ppaVar31 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n            bVar37 = true;\n            if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e694;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));\n            goto LAB_0021e520;\n          }\n        }" { (labeled_statement "LAB_0021e61b:\n          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);" statement_identifier : (expression_statement "uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);" (assignment_expression "uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4)" identifier = (pointer_expression "*(uint *)(plocal_symbols + uVar28 * 0x10 + 4)" * (cast_expression "(uint *)(plocal_symbols + uVar28 * 0x10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar28 * 0x10 + 4)" ( (binary_expression "plocal_symbols + uVar28 * 0x10 + 4" (binary_expression "plocal_symbols + uVar28 * 0x10" identifier + (binary_expression "uVar28 * 0x10" identifier * number_literal)) + number_literal) ))))) ;)) (expression_statement "pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    );" (assignment_expression "pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    )" identifier = (cast_expression "(Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    )" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    )" ( (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 "local_b4 = (int)&local_ac->first + (int)pRVar29;" (assignment_expression "local_b4 = (int)&local_ac->first + (int)pRVar29" identifier = (binary_expression "(int)&local_ac->first + (int)pRVar29" (cast_expression "(int)&local_ac->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_ac->first" & (field_expression "local_ac->first" identifier -> field_identifier))) + (cast_expression "(int)pRVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_bd != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a4;\n            *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e662;\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                         **)((int)ppaVar31 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n            bVar37 = true;\n            if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e694;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));\n            goto LAB_0021e520;\n          }" if (parenthesized_expression "(local_bd != '\0')" ( (binary_expression "local_bd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a4;\n            *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e662;\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                         **)((int)ppaVar31 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n            bVar37 = true;\n            if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e694;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));\n            goto LAB_0021e520;\n          }" { (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_a4;" (assignment_expression "src_id.second = (uint)local_a4" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)local_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;" (assignment_expression "*(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id" (pointer_expression "*(Icf **)((int)ppaVar31 + -0xc)" * (cast_expression "(Icf **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;" (assignment_expression "*(mapped_type **)((int)ppaVar31 + -0x10) = local_bc" (pointer_expression "*(mapped_type **)((int)ppaVar31 + -0x10)" * (cast_expression "(mapped_type **)((int)ppaVar31 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = (Icf *)&src_id;" (assignment_expression "local_a0 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e662;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e662" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) 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) : :) (expression_statement "Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppaVar31 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppaVar31 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc))" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppaVar31 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppaVar31 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppaVar31 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)" ( (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **" (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 "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc)" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> **)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> **" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "bVar37 = true;" (assignment_expression "bVar37 = true" identifier = true) ;) (if_statement "if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0021e505;" if (parenthesized_expression "((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 3)" ( (binary_expression "(plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 3" (parenthesized_expression "(plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf)" ( (binary_expression "plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf" (subscript_expression "plocal_symbols[uVar28 * 0x10 + 0xc]" identifier [ (binary_expression "uVar28 * 0x10 + 0xc" (binary_expression "uVar28 * 0x10" identifier * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0021e505;" goto statement_identifier ;)) (labeled_statement "LAB_0021e679:\n            *(Icf **)((int)ppaVar31 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(Icf **)((int)ppaVar31 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)ppaVar31 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)ppaVar31 + -0xc)" * (cast_expression "(Icf **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;" (assignment_expression "*(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8" (pointer_expression "*(Symbol_info **)((int)ppaVar31 + -0x10)" * (cast_expression "(Symbol_info **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) 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 "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e694;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e694" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::" (comma_expression "std::vector<gold::Symbol*,_std" identifier (ERROR "::vector<gold::Symbol*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol*>_>::emplace_back<gold" (binary_expression "Symbol*>_>::emplace_back" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));" (binary_expression "Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc))" identifier * (ERROR ">" >) (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)" ( (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **" (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 "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)ppaVar31 + -0xc)" * (cast_expression "(Symbol ***)((int)ppaVar31 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (goto_statement "goto LAB_0021e520;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_a4 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;\n              p_Var11 = pp_Var17[0x1b];\n              *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            *(uint *)((int)ppaVar31 + -8) = uVar28;\n            *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc) = object;\n            *(Xindex **)((int)ppaVar31 + -0x10) = pXVar18;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e719;\n            local_a4 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppaVar31 + -0x10),\n                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8));\n            _Var26._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0021e61b;\n          }\n          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);\n          pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    );\n          local_b4 = (int)&local_ac->first + (int)pRVar29;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e4f1;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          bVar37 = false;\n          if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e520;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));\nLAB_0021e520:\n          src_id.first = pRVar29;\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          local_2c = local_ac;\n          src_id.second = 0;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e550;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed65;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e598;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX;\n          if (!bVar37) goto LAB_0021e5a5;\n        }" else (compound_statement "{\n          if (local_a4 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;\n              p_Var11 = pp_Var17[0x1b];\n              *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            *(uint *)((int)ppaVar31 + -8) = uVar28;\n            *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc) = object;\n            *(Xindex **)((int)ppaVar31 + -0x10) = pXVar18;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e719;\n            local_a4 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppaVar31 + -0x10),\n                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8));\n            _Var26._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0021e61b;\n          }\n          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);\n          pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    );\n          local_b4 = (int)&local_ac->first + (int)pRVar29;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e4f1;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          bVar37 = false;\n          if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e520;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));\nLAB_0021e520:\n          src_id.first = pRVar29;\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          local_2c = local_ac;\n          src_id.second = 0;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e550;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed65;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e598;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX;\n          if (!bVar37) goto LAB_0021e5a5;\n        }" { (if_statement "if (local_a4 == (Relobj *)0xffff) {\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;\n              p_Var11 = pp_Var17[0x1b];\n              *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            *(uint *)((int)ppaVar31 + -8) = uVar28;\n            *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc) = object;\n            *(Xindex **)((int)ppaVar31 + -0x10) = pXVar18;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e719;\n            local_a4 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppaVar31 + -0x10),\n                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8));\n            _Var26._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0021e61b;\n          }" if (parenthesized_expression "(local_a4 == (Relobj *)0xffff)" ( (binary_expression "local_a4 == (Relobj *)0xffff" identifier == (cast_expression "(Relobj *)0xffff" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;\n            if (pXVar18 == (Xindex *)0x0) {\n              pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;\n              p_Var11 = pp_Var17[0x1b];\n              *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }\n            *(uint *)((int)ppaVar31 + -8) = uVar28;\n            *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc) = object;\n            *(Xindex **)((int)ppaVar31 + -0x10) = pXVar18;\n                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e719;\n            local_a4 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppaVar31 + -0x10),\n                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8));\n            _Var26._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0021e61b;\n          }" { (expression_statement "pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;" (assignment_expression "pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_" 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)) ;) (if_statement "if (pXVar18 == (Xindex *)0x0) {\n              pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;\n              p_Var11 = pp_Var17[0x1b];\n              *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }" if (parenthesized_expression "(pXVar18 == (Xindex *)0x0)" ( (binary_expression "pXVar18 == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;\n              p_Var11 = pp_Var17[0x1b];\n              *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;\n              pXVar18 = (Xindex *)(*p_Var11)();\n              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;\n            }" { (expression_statement "pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object;" (assignment_expression "pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                         _vptr_Object" 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)) ;) (expression_statement "*(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;" (assignment_expression "*(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object" (pointer_expression "*(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10)" * (call_expression "(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10)" (parenthesized_expression "(Sized_relobj_file<32,_true> **)" ( (comma_expression "Sized_relobj_file<32,_true> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "p_Var11 = pp_Var17[0x1b];" (assignment_expression "p_Var11 = pp_Var17[0x1b]" identifier = (subscript_expression "pp_Var17[0x1b]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pXVar18 = (Xindex *)(*p_Var11)();" (assignment_expression "pXVar18 = (Xindex *)(*p_Var11)()" identifier = (cast_expression "(Xindex *)(*p_Var11)()" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var11)()" (parenthesized_expression "(*p_Var11)" ( (pointer_expression "*p_Var11" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;" (assignment_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18" (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) = identifier) ;) })) (expression_statement "*(uint *)((int)ppaVar31 + -8) = uVar28;" (assignment_expression "*(uint *)((int)ppaVar31 + -8) = uVar28" (pointer_expression "*(uint *)((int)ppaVar31 + -8)" * (cast_expression "(uint *)((int)ppaVar31 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc) = object;" (assignment_expression "*(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc) = object" (pointer_expression "*(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc)" * (call_expression "(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc)" (parenthesized_expression "(Sized_relobj_file<32,_true> **)" ( (comma_expression "Sized_relobj_file<32,_true> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Xindex **)((int)ppaVar31 + -0x10) = pXVar18;" (assignment_expression "*(Xindex **)((int)ppaVar31 + -0x10) = pXVar18" (pointer_expression "*(Xindex **)((int)ppaVar31 + -0x10)" * (cast_expression "(Xindex **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Xindex **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e719;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e719" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_a4 = (Relobj *)\n                       gold::" (assignment_expression "local_a4 = (Relobj *)\n                       gold" identifier = (cast_expression "(Relobj *)\n                       gold" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppaVar31 + -0x10),\n                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppaVar31 + -0x10),\n                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8));" (call_expression "sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppaVar31 + -0x10),\n                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8))" identifier (argument_list "(*(Xindex **)((int)ppaVar31 + -0x10),\n                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8))" ( (pointer_expression "*(Xindex **)((int)ppaVar31 + -0x10)" * (cast_expression "(Xindex **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Xindex **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Object **)((int)ppaVar31 + -0xc)" * (cast_expression "(Object **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppaVar31 + -8)" * (cast_expression "(uint *)((int)ppaVar31 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "_Var26._M_p = (pointer)extraout_EDX_00;" (assignment_expression "_Var26._M_p = (pointer)extraout_EDX_00" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_00" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_0021e61b;" goto statement_identifier ;) })) (expression_statement "uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);" (assignment_expression "uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4)" identifier = (pointer_expression "*(uint *)(plocal_symbols + uVar28 * 0x10 + 4)" * (cast_expression "(uint *)(plocal_symbols + uVar28 * 0x10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar28 * 0x10 + 4)" ( (binary_expression "plocal_symbols + uVar28 * 0x10 + 4" (binary_expression "plocal_symbols + uVar28 * 0x10" identifier + (binary_expression "uVar28 * 0x10" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    );" (assignment_expression "pRVar29 = (Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    )" identifier = (cast_expression "(Relobj *)\n                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    )" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18\n                    )" ( (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 "local_b4 = (int)&local_ac->first + (int)pRVar29;" (assignment_expression "local_b4 = (int)&local_ac->first + (int)pRVar29" identifier = (binary_expression "(int)&local_ac->first + (int)pRVar29" (cast_expression "(int)&local_ac->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_ac->first" & (field_expression "local_ac->first" identifier -> field_identifier))) + (cast_expression "(int)pRVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_bd == '\0') goto LAB_0021e5a5;" if (parenthesized_expression "(local_bd == '\0')" ( (binary_expression "local_bd == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0021e5a5;" goto statement_identifier ;)) (expression_statement "src_id.first = (Relobj *)0x0;" (assignment_expression "src_id.first = (Relobj *)0x0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;" (assignment_expression "*(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id" (pointer_expression "*(Icf **)((int)ppaVar31 + -0xc)" * (cast_expression "(Icf **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;" (assignment_expression "*(mapped_type **)((int)ppaVar31 + -0x10) = local_bc" (pointer_expression "*(mapped_type **)((int)ppaVar31 + -0x10)" * (cast_expression "(mapped_type **)((int)ppaVar31 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) 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_a0 = (Icf *)&src_id;" (assignment_expression "local_a0 = (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 "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e4f1;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e4f1" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) 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) : :) (expression_statement "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc))" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)" ( (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **" (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 "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc)" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> **)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> **" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (if_statement "if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0021e679;" if (parenthesized_expression "((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) == 3)" ( (binary_expression "(plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) == 3" (parenthesized_expression "(plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf)" ( (binary_expression "plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf" (subscript_expression "plocal_symbols[uVar28 * 0x10 + 0xc]" identifier [ (binary_expression "uVar28 * 0x10 + 0xc" (binary_expression "uVar28 * 0x10" identifier * number_literal) + number_literal) ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0021e679;" goto statement_identifier ;)) (labeled_statement "LAB_0021e505:\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(Icf **)((int)ppaVar31 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)ppaVar31 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)ppaVar31 + -0xc)" * (cast_expression "(Icf **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;" (assignment_expression "*(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8" (pointer_expression "*(Symbol_info **)((int)ppaVar31 + -0x10)" * (cast_expression "(Symbol_info **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) 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 "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e520;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e520" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::" (comma_expression "std::vector<gold::Symbol*,_std" identifier (ERROR "::vector<gold::Symbol*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol*>_>::emplace_back<gold" (binary_expression "Symbol*>_>::emplace_back" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));" (binary_expression "Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc))" identifier * (ERROR ">" >) (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppaVar31 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)" ( (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **" (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 "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)ppaVar31 + -0xc)" * (cast_expression "(Symbol ***)((int)ppaVar31 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (labeled_statement "LAB_0021e520:\n          src_id.first = pRVar29;" statement_identifier : (expression_statement "src_id.first = pRVar29;" (assignment_expression "src_id.first = pRVar29" (field_expression "src_id.first" identifier . field_identifier) = identifier) ;)) (expression_statement "*(Icf **)((int)ppaVar31 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)ppaVar31 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)ppaVar31 + -0xc)" * (cast_expression "(Icf **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;" (assignment_expression "*(Addend_info **)((int)ppaVar31 + -0x10) = local_dc" (pointer_expression "*(Addend_info **)((int)ppaVar31 + -0x10)" * (cast_expression "(Addend_info **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Addend_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = 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_28._M_p = (pointer)((int)local_ac >> 0x1f);" (assignment_expression "local_28._M_p = (pointer)((int)local_ac >> 0x1f)" (field_expression "local_28._M_p" identifier . field_identifier) = (call_expression "(pointer)((int)local_ac >> 0x1f)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)local_ac >> 0x1f)" ( (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e550;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e550" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));" statement_identifier (ERROR "::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>,_std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "_long_long_int>_>_>\n          ::emplace_back" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));" (comma_expression "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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc))" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc))" (binary_expression "_long_long_int>_" identifier > identifier) > (parenthesized_expression "(*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc))" ( (comma_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc)" (pointer_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10)" * (call_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)" ( (ERROR "vector<std::pair<long_long_int,_long_long_int>,_std::allocator<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                       **" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_>\n                       **" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc)" * (call_expression "(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc)" (parenthesized_expression "(pair<long_long_int,_long_long_int> **)" ( (comma_expression "pair<long_long_int,_long_long_int> **" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;)) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar6 = *(uint *)prelocs;" (assignment_expression "uVar6 = *(uint *)prelocs" identifier = (pointer_expression "*(uint *)prelocs" * (cast_expression "(uint *)prelocs" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar5 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;" (assignment_expression "puVar5 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" identifier = (field_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" (field_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl" (parenthesized_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )" ( (ERROR "local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n                   super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\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)) ;) (expression_statement "src_id.first = (Relobj *)\n                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);" (assignment_expression "src_id.first = (Relobj *)\n                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18)" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)\n                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18)" ( (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed65;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }" if (parenthesized_expression "(puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage)" ( (binary_expression "puVar5 == (local_cc->\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_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" (field_expression "(local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl" (parenthesized_expression "(local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )" ( (ERROR "local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n                        super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\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            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed65;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }" { (expression_statement "*(Icf **)((int)ppaVar31 + -8) = local_a0;" (assignment_expression "*(Icf **)((int)ppaVar31 + -8) = local_a0" (pointer_expression "*(Icf **)((int)ppaVar31 + -8)" * (cast_expression "(Icf **)((int)ppaVar31 + -8)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)ppaVar31 + -0xc) = puVar5;" (assignment_expression "*(pointer *)((int)ppaVar31 + -0xc) = puVar5" (pointer_expression "*(pointer *)((int)ppaVar31 + -0xc)" * (cast_expression "(pointer *)((int)ppaVar31 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;" (assignment_expression "*(Offset_info **)((int)ppaVar31 + -0x10) = local_cc" (pointer_expression "*(Offset_info **)((int)ppaVar31 + -0x10)" * (cast_expression "(Offset_info **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Offset_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed65;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed65" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) 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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));" 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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));" (binary_expression "_M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8))" (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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8))" ( (comma_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8)" (pointer_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppaVar31 + -0x10)" * (call_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)" ( (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) : :) (binary_expression "allocator<long_long_unsigned_int>_> **" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8)" (binary_expression "(iterator)*(ulonglong **)((int)ppaVar31 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(ulonglong **)((int)ppaVar31 + -0xc)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(ulonglong **)((int)ppaVar31 + -8)" * (cast_expression "(ulonglong **)((int)ppaVar31 + -8)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;)) }) (else_clause "else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }" else (compound_statement "{\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }" { (expression_statement "*(Relobj **)puVar5 = src_id.first;" (assignment_expression "*(Relobj **)puVar5 = src_id.first" (pointer_expression "*(Relobj **)puVar5" * (cast_expression "(Relobj **)puVar5" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(uint *)((int)puVar5 + 4) = 0;" (assignment_expression "*(uint *)((int)puVar5 + 4) = 0" (pointer_expression "*(uint *)((int)puVar5 + 4)" * (cast_expression "(uint *)((int)puVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 4)" ( (binary_expression "(int)puVar5 + 4" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;" (assignment_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1" (field_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>)" ( (ERROR "local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n            super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n            super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\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 "puVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "dst_id.first = (Relobj *)0x0;" (assignment_expression "dst_id.first = (Relobj *)0x0" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;" (assignment_expression "*(Section_id **)((int)ppaVar31 + -0xc) = &dst_id" (pointer_expression "*(Section_id **)((int)ppaVar31 + -0xc)" * (cast_expression "(Section_id **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&dst_id" & identifier)) ;) (expression_statement "*(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;" (assignment_expression "*(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0" (pointer_expression "*(Reloc_addend_size_info **)((int)ppaVar31 + -0x10)" * (cast_expression "(Reloc_addend_size_info **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Reloc_addend_size_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e598;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e598" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));" statement_identifier (ERROR "::vector<unsigned_int,_std::allocator<unsigned_int>_>:" : : (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));" (binary_expression "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc))" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc))" ( (comma_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc)" (pointer_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10)" * (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)" ( (ERROR "vector<unsigned_int,_std::" (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_> **" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint **)((int)ppaVar31 + -0xc)" * (cast_expression "(uint **)((int)ppaVar31 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;)) (expression_statement "_Var26._M_p = (pointer)extraout_EDX;" (assignment_expression "_Var26._M_p = (pointer)extraout_EDX" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (!bVar37) goto LAB_0021e5a5;" if (parenthesized_expression "(!bVar37)" ( (unary_expression "!bVar37" ! identifier) )) (goto_statement "goto LAB_0021e5a5;" goto statement_identifier ;)) }))) (if_statement "if ((local_be != false) && ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 1)) {\n          if ((*local_b8)->options_ == (General_options *)0x0) {\n            *(pointer *)((int)ppaVar31 + -4) = _Var26._M_p;\n            *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n            *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f11d;\n            gold::do_gold_unreachable\n                      (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                       *(char **)((int)ppaVar31 + -8));\n          }\n          if (((*local_b8)->options_->shared_).value == false) {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = symtab->icf_;\n            local_6c = object;\n            uVar3 = *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n            *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar3 << 8 | uVar3 >> 8);\n            *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18) = &local_6c;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ec66;\n            pVar41 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var26._M_p = pVar41._4_4_;\n            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)((int)ppaVar31 + -4);\n          }\n        }" if (parenthesized_expression "((local_be != false) && ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 1))" ( (binary_expression "(local_be != false) && ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 1)" (parenthesized_expression "(local_be != false)" ( (binary_expression "local_be != false" identifier != false) )) && (parenthesized_expression "((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 1)" ( (binary_expression "(plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 1" (parenthesized_expression "(plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf)" ( (binary_expression "plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf" (subscript_expression "plocal_symbols[uVar28 * 0x10 + 0xc]" identifier [ (binary_expression "uVar28 * 0x10 + 0xc" (binary_expression "uVar28 * 0x10" identifier * number_literal) + number_literal) ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if ((*local_b8)->options_ == (General_options *)0x0) {\n            *(pointer *)((int)ppaVar31 + -4) = _Var26._M_p;\n            *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n            *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f11d;\n            gold::do_gold_unreachable\n                      (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                       *(char **)((int)ppaVar31 + -8));\n          }\n          if (((*local_b8)->options_->shared_).value == false) {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = symtab->icf_;\n            local_6c = object;\n            uVar3 = *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n            *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar3 << 8 | uVar3 >> 8);\n            *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18) = &local_6c;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ec66;\n            pVar41 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var26._M_p = pVar41._4_4_;\n            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)((int)ppaVar31 + -4);\n          }\n        }" { (if_statement "if ((*local_b8)->options_ == (General_options *)0x0) {\n            *(pointer *)((int)ppaVar31 + -4) = _Var26._M_p;\n            *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n            *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f11d;\n            gold::do_gold_unreachable\n                      (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                       *(char **)((int)ppaVar31 + -8));\n          }" if (parenthesized_expression "((*local_b8)->options_ == (General_options *)0x0)" ( (binary_expression "(*local_b8)->options_ == (General_options *)0x0" (field_expression "(*local_b8)->options_" (parenthesized_expression "(*local_b8)" ( (pointer_expression "*local_b8" * identifier) )) -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(pointer *)((int)ppaVar31 + -4) = _Var26._M_p;\n            *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n            *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f11d;\n            gold::do_gold_unreachable\n                      (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                       *(char **)((int)ppaVar31 + -8));\n          }" { (expression_statement "*(pointer *)((int)ppaVar31 + -4) = _Var26._M_p;" (assignment_expression "*(pointer *)((int)ppaVar31 + -4) = _Var26._M_p" (pointer_expression "*(pointer *)((int)ppaVar31 + -4)" * (cast_expression "(pointer *)((int)ppaVar31 + -4)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -4)" ( (binary_expression "(int)ppaVar31 + -4" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "_Var26._M_p" identifier . field_identifier)) ;) (expression_statement "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppaVar31 + -8)" * (cast_expression "(undefined ***)((int)ppaVar31 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0xc)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppaVar31 + -0x10)" * (cast_expression "(int *)((int)ppaVar31 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f11d;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f11d" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                      (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                       *(char **)((int)ppaVar31 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                       *(char **)((int)ppaVar31 + -8));" (call_expression "do_gold_unreachable\n                      (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                       *(char **)((int)ppaVar31 + -8))" identifier (argument_list "(*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                       *(char **)((int)ppaVar31 + -8))" ( (pointer_expression "*(char **)((int)ppaVar31 + -0x10)" * (cast_expression "(char **)((int)ppaVar31 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppaVar31 + -0xc)" * (cast_expression "(int *)((int)ppaVar31 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppaVar31 + -8)" * (cast_expression "(char **)((int)ppaVar31 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if (((*local_b8)->options_->shared_).value == false) {\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = symtab->icf_;\n            local_6c = object;\n            uVar3 = *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n            *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar3 << 8 | uVar3 >> 8);\n            *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18) = &local_6c;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ec66;\n            pVar41 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var26._M_p = pVar41._4_4_;\n            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)((int)ppaVar31 + -4);\n          }" if (parenthesized_expression "(((*local_b8)->options_->shared_).value == false)" ( (binary_expression "((*local_b8)->options_->shared_).value == false" (field_expression "((*local_b8)->options_->shared_).value" (parenthesized_expression "((*local_b8)->options_->shared_)" ( (field_expression "(*local_b8)->options_->shared_" (field_expression "(*local_b8)->options_" (parenthesized_expression "(*local_b8)" ( (pointer_expression "*local_b8" * identifier) )) -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n            if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }" { (if_statement "if (local_e4 - 4 < 0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }" if (parenthesized_expression "(local_e4 - 4 < 0x37)" ( (binary_expression "local_e4 - 4 < 0x37" (binary_expression "local_e4 - 4" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }" { comment comment (expression_statement "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();" (call_expression "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))()" (parenthesized_expression "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))" ( (pointer_expression "*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8)" * (cast_expression "(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8[local_e4 - 0x59816] + (int)local_a8)" ( (binary_expression "local_a8[local_e4 - 0x59816] + (int)local_a8" (subscript_expression "local_a8[local_e4 - 0x59816]" identifier [ (binary_expression "local_e4 - 0x59816" identifier - number_literal) ]) + (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n            local_a0 = symtab->icf_;\n            local_6c = object;\n            uVar3 = *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n            *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar3 << 8 | uVar3 >> 8);\n            *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18) = &local_6c;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ec66;\n            pVar41 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var26._M_p = pVar41._4_4_;\n            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)((int)ppaVar31 + -4);\n          }" else (compound_statement "{\n            local_a0 = symtab->icf_;\n            local_6c = object;\n            uVar3 = *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n            *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar3 << 8 | uVar3 >> 8);\n            *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18) = &local_6c;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ec66;\n            pVar41 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var26._M_p = pVar41._4_4_;\n            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)((int)ppaVar31 + -4);\n          }" { (expression_statement "local_a0 = symtab->icf_;" (assignment_expression "local_a0 = symtab->icf_" identifier = (field_expression "symtab->icf_" identifier -> field_identifier)) ;) (expression_statement "local_6c = object;" (assignment_expression "local_6c = object" identifier = identifier) ;) (expression_statement "uVar3 = *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe);" (assignment_expression "uVar3 = *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe)" identifier = (pointer_expression "*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe)" * (cast_expression "(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar28 * 0x10 + 0xe)" ( (binary_expression "plocal_symbols + uVar28 * 0x10 + 0xe" (binary_expression "plocal_symbols + uVar28 * 0x10" identifier + (binary_expression "uVar28 * 0x10" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0xc)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x10)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_68 = (uint)(ushort)(uVar3 << 8 | uVar3 >> 8);" (assignment_expression "local_68 = (uint)(ushort)(uVar3 << 8 | uVar3 >> 8)" identifier = (call_expression "(uint)(ushort)(uVar3 << 8 | uVar3 >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(uVar3 << 8 | uVar3 >> 8)" ( (binary_expression "uVar3 << 8 | uVar3 >> 8" (binary_expression "uVar3 << 8" identifier << number_literal) | (binary_expression "uVar3 >> 8" identifier >> number_literal)) )))) ;) (expression_statement "*(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_2;" (assignment_expression "*(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_2" (pointer_expression "*(__node_gen_type **)((int)ppaVar31 + -0x14)" * (cast_expression "(__node_gen_type **)((int)ppaVar31 + -0x14)" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__node_gen_2" & identifier)) ;) (expression_statement "*(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18) = &local_6c;" (assignment_expression "*(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18) = &local_6c" (pointer_expression "*(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18)" * (call_expression "(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18)" (parenthesized_expression "(Sized_relobj_file<32,_true> ***)" ( (comma_expression "Sized_relobj_file<32,_true> ***" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> ***" identifier > (pointer_expression "***" * (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)ppaVar31 + -0x18)" ( (binary_expression "(int)ppaVar31 + -0x18" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "__node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;" (assignment_expression "__node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_" (field_expression "__node_gen_2._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&local_a0->fptr_section_id_" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_a0->fptr_section_id_" & (field_expression "local_a0->fptr_section_id_" identifier -> field_identifier)))) ;) (expression_statement "*(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_2._M_h;" (assignment_expression "*(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_2._M_h" (pointer_expression "*(__hashtable_alloc **)((int)ppaVar31 + -0x1c)" * (cast_expression "(__hashtable_alloc **)((int)ppaVar31 + -0x1c)" ( (type_descriptor "__hashtable_alloc **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x1c)" ( (binary_expression "(int)ppaVar31 + -0x1c" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "__node_gen_2._M_h" identifier . field_identifier)) ;) (expression_statement "*(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)ppaVar31 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)ppaVar31 + -0x20)" * (cast_expression "(undefined1 **)((int)ppaVar31 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x20)" ( (binary_expression "(int)ppaVar31 + -0x20" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ec66;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ec66" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x24)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x24)" ( (binary_expression "(int)ppaVar31 + -0x24" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "pVar41 = 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::" (assignment_expression "pVar41 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                     ::\n                     _M_insert<std" identifier , (binary_expression "_true>_>\n                     ::\n                     _M_insert<std" (binary_expression "_true>_>\n                     ::\n                     _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ()" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                               ()" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "()" ( identifier )))) ;))))) (expression_statement "_Var26._M_p = pVar41._4_4_;" (assignment_expression "_Var26._M_p = pVar41._4_4_" (field_expression "_Var26._M_p" identifier . field_identifier) = (field_expression "pVar41._4_4_" identifier . field_identifier)) ;) (expression_statement "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)((int)ppaVar31 + -4);" (assignment_expression "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)((int)ppaVar31 + -4)" identifier = (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)((int)ppaVar31 + -4)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                        **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                        **" identifier * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -4)" ( (binary_expression "(int)ppaVar31 + -4" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })) if (parenthesized_expression "((Relobj *)data_shndx != local_a4)" ( (binary_expression "(Relobj *)data_shndx != local_a4" (cast_expression "(Relobj *)data_shndx" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) { (expression_statement "local_b0 = (Output_segment *)object;" (assignment_expression "local_b0 = (Output_segment *)object" identifier = (cast_expression "(Output_segment *)object" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar30 = ppaVar31;" (assignment_expression "puVar30 = ppaVar31" identifier = identifier) ;) (labeled_statement "LAB_0021e8f0:\n          if ((*local_b8)->options_ == (General_options *)0x0) {\n            puVar30[-2] = local_a8 + -0x5941e;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x21f0c2;\n            gold::do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }" statement_identifier : (if_statement "if ((*local_b8)->options_ == (General_options *)0x0) {\n            puVar30[-2] = local_a8 + -0x5941e;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x21f0c2;\n            gold::do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }" if (parenthesized_expression "((*local_b8)->options_ == (General_options *)0x0)" ( (binary_expression "(*local_b8)->options_ == (General_options *)0x0" (field_expression "(*local_b8)->options_" (parenthesized_expression "(*local_b8)" ( (pointer_expression "*local_b8" * identifier) )) -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar30[-2] = local_a8 + -0x5941e;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x21f0c2;\n            gold::do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }" { (expression_statement "puVar30[-2] = local_a8 + -0x5941e;" (assignment_expression "puVar30[-2] = local_a8 + -0x5941e" (subscript_expression "puVar30[-2]" identifier [ number_literal ]) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "puVar30[-3] = 0x5c;" (assignment_expression "puVar30[-3] = 0x5c" (subscript_expression "puVar30[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar30[-4] = (int)local_a8 + -0x1a1d93;" (assignment_expression "puVar30[-4] = (int)local_a8 + -0x1a1d93" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "puVar30[-5] = 0x21f0c2;" (assignment_expression "puVar30[-5] = 0x21f0c2" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);" (call_expression "do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2])" identifier (argument_list "((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2])" ( (cast_expression "(char *)puVar30[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-4]" identifier [ number_literal ])) , (subscript_expression "puVar30[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar30[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-2]" identifier [ number_literal ])) ))) ;)) }))) (expression_statement "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      **)puVar30;" (assignment_expression "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      **)puVar30" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      **)puVar30" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                      **)puVar30" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                      **)puVar30" identifier * (pointer_expression "*)puVar30" * (ERROR ")" )) identifier))) ))) ;) if (parenthesized_expression "(((*local_b8)->options_->gc_sections_).value != false)" ( (binary_expression "((*local_b8)->options_->gc_sections_).value != false" (field_expression "((*local_b8)->options_->gc_sections_).value" (parenthesized_expression "((*local_b8)->options_->gc_sections_)" ( (field_expression "(*local_b8)->options_->gc_sections_" (field_expression "(*local_b8)->options_" (parenthesized_expression "(*local_b8)" ( (pointer_expression "*local_b8" * identifier) )) -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) { (expression_statement "src_id_1.first = (Relobj *)object;" (assignment_expression "src_id_1.first = (Relobj *)object" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var23 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var23 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" identifier = (pointer_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.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))) ;) (expression_statement "src_id_1.second = data_shndx;" (assignment_expression "src_id_1.second = data_shndx" (field_expression "src_id_1.second" identifier . field_identifier) = identifier) ;) (expression_statement "dst_id.first = (Relobj *)local_b0;" (assignment_expression "dst_id.first = (Relobj *)local_b0" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_b0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "dst_id.second = (uint)local_a4;" (assignment_expression "dst_id.second = (uint)local_a4" (field_expression "dst_id.second" identifier . field_identifier) = (cast_expression "(uint)local_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;" (assignment_expression "p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" identifier = (field_expression "(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" (field_expression "(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (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) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var22 = &p_Var23->_M_header;" (assignment_expression "p_Var22 = &p_Var23->_M_header" identifier = (pointer_expression "&p_Var23->_M_header" & (field_expression "p_Var23->_M_header" identifier -> field_identifier))) ;) 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)) )) { (labeled_statement "LAB_0021e980:\n              puVar30[-4] = &local_74;" statement_identifier : (expression_statement "puVar30[-4] = &local_74;" (assignment_expression "puVar30[-4] = &local_74" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = (pointer_expression "&local_74" & identifier)) ;)) (expression_statement "local_74 = &src_id_1;" (assignment_expression "local_74 = &src_id_1" identifier = (pointer_expression "&src_id_1" & identifier)) ;) (expression_statement "puVar30[-5] = 0x21e99b;" (assignment_expression "puVar30[-5] = 0x21e99b" (subscript_expression "puVar30[-5]" 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)) : :) (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > ( ( (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 "*" *)) ,) (binary_expression "_unsigned_int>_>_>_>_>_>\n                          *)puVar30[-4]" (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 "*)puVar30[-4]" * (ERROR ")" )) (subscript_expression "puVar30[-4]" identifier [ number_literal ]))) , (cast_expression "(_Base_ptr)puVar30[-3]" ( (type_descriptor "_Base_ptr" type_identifier) ) (subscript_expression "puVar30[-3]" identifier [ number_literal ])) , ( (ERROR "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              p_Var21 = local_98;\n            }\n            else" (comma_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30)" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-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 "&> *)puVar30[-2]" & (ERROR ">" >) (pointer_expression "*)puVar30[-2]" * (ERROR ")" )) (subscript_expression "puVar30[-2]" identifier [ number_literal ])))) , (parenthesized_expression "(tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30)" ( (comma_expression "tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30" (binary_expression "tuple<> *)puVar30[-1]" identifier < (ERROR ">" >) (pointer_expression "*)puVar30[-1]" * (ERROR ")" )) (subscript_expression "puVar30[-1]" identifier [ number_literal ]))) , (cast_expression "(piecewise_construct_t *)*puVar30" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar30" * identifier))) ))) ; (assignment_expression "p_Var21 = local_98" identifier = identifier) ; } else) (compound_statement "{\n              do {\n                while ((p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left;\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021e96a;\n                }\n                pp_Var1 = &(p_Var21->_M_header)._M_right;\n                p_Var7 = *pp_Var1;\n                p_Var21 = (_Rb_tree_header *)p_Var22;\n              } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021e96a:\n              if (((p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\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_b8)->target_;\n            if (pTVar8 == (Target *)0x0) {\n              puVar30[-3] = local_a8 + -0x59664;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x21f101;\n              gold::do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }\n            _Var26._M_p = (pointer)pTVar8->_vptr_Target[0x41];\n            if ((General_options *)_Var26._M_p != (General_options *)(local_a8 + -0x1510f0)) {\n              puVar30[-3] = local_b4;\n              puVar30[-4] = local_a4;\n              puVar30[-5] = local_b0;\n              puVar30[-6] = data_shndx;\n              puVar30[-7] = object;\n              puVar30[-8] = symtab;\n              puVar30[-9] = pTVar8;\n              puVar30[-10] = 0x21eb71;\n              (*(code *)_Var26._M_p)();\n              _Var26._M_p = (pointer)extraout_EDX_02;\n            }\n            pp_Var17 = local_c4;\n            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)(puVar30 + -1);\n            if (local_c4 != (_func_int_varargs **)0x0) {\n              local_a4 = (Relobj *)&local_2c;\n              pGVar9 = symtab->gc_;\n              puVar30[-5] = local_c4;\n              local_a0 = (Icf *)&src_id;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x21ea36;\n              sVar16 = strlen((char *)puVar30[-5]);\n              pIVar13 = local_a0;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var17 + sVar16);\n              puVar30[-4] = pp_Var17;\n              puVar30[-5] = local_a0;\n              puVar30[-6] = 0x21ea4b;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pIVar13;\n              puVar30[-4] = &pGVar9->cident_sections_;\n              puVar30[-5] = &local_9c;\n              puVar30[-6] = 0x21ea5f;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              pcVar14 = local_9c;\n              if (src_id.first != local_a4) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }\n              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2);\n              _Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var22 = (_Base_ptr)pcVar12;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        uVar28 = uVar28 - object->local_symbol_count_;\n        ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar25[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }\n_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);\n        pp_Var35 = pp_Var17;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);\n        bVar38 = false;\n        bVar37 = (!bVar37 && !bVar39) == bVar37;\n        if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }\n        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);\n        if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar30 = ppaVar31;\n        if (bVar27 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4);\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_ec) {\n    *(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e6ba;\n    operator_delete(*(void **)((int)ppaVar31 + -0x10));\n  }\n  return;\n}" { (do_statement "do {\n                while ((p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left;\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021e96a;\n                }\n                pp_Var1 = &(p_Var21->_M_header)._M_right;\n                p_Var7 = *pp_Var1;\n                p_Var21 = (_Rb_tree_header *)p_Var22;\n              } while (*pp_Var1 != (_Base_ptr)0x0);" do (ERROR "{\n                while ((p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left;\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021e96a;\n                }\n                pp_Var1 = &(p_Var21->_M_header)._M_right;\n                p_Var7 = *pp_Var1;" (compound_statement "{\n                while ((p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left;\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021e96a;\n                }" { (while_statement "while ((p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left;\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021e96a;" while (parenthesized_expression "((p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left;\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_M_header)._M_left == (_Base_ptr)0x0)" ( (binary_expression "(p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left;\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_M_header)._M_left == (_Base_ptr)0x0" (field_expression "(p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left;\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_M_header)._M_left" (parenthesized_expression "(p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left;\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_M_header)" ( (comma_expression "p_Var21 = (_Rb_tree_header *)p_Var7,\n                       object <= (Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left" (assignment_expression "p_Var21 = (_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_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left" identifier <= (assignment_expression "(Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {\n                  p_Var7 = (p_Var21->_M_header)._M_left" (parenthesized_expression "(Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1])))))" ( (comma_expression "Sized_relobj_file<32,_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))" (binary_expression "_true> *)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var21 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var21 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var21 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var21 + 0x10)" ( (binary_expression "(int)p_Var21 + 0x10" (cast_expression "(int)p_Var21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) && (parenthesized_expression "((object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))" ( (parenthesized_expression "(object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1])))" ( (binary_expression "object != (Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))" identifier != (parenthesized_expression "(Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))" ( (comma_expression "Sized_relobj_file<32,_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1])" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1])" (binary_expression "_true> *)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var21 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var21 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var21 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var21 + 0x10)" ( (binary_expression "(int)p_Var21 + 0x10" (cast_expression "(int)p_Var21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) || (parenthesized_expression "(data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1])" ( (binary_expression "data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]" identifier <= (subscript_expression "((size_t *)((int)p_Var21 + 0x10))[1]" (parenthesized_expression "((size_t *)((int)p_Var21 + 0x10))" ( (cast_expression "(size_t *)((int)p_Var21 + 0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var21 + 0x10)" ( (binary_expression "(int)p_Var21 + 0x10" (cast_expression "(int)p_Var21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) [ number_literal ])) )))) ))) )) )))) )) (ERROR "{\n                  p_Var7" { identifier) = (field_expression "(p_Var21->_M_header)._M_left" (parenthesized_expression "(p_Var21->_M_header)" ( (field_expression "p_Var21->_M_header" identifier -> field_identifier) )) . field_identifier)))) (ERROR ";\n                  p_Var22 = &p_Var21->_M_header;\n                  if ((p_Var21->_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_0021e96a;" goto statement_identifier ;)) }) (expression_statement "pp_Var1 = &(p_Var21->_M_header)._M_right;" (assignment_expression "pp_Var1 = &(p_Var21->_M_header)._M_right" identifier = (pointer_expression "&(p_Var21->_M_header)._M_right" & (field_expression "(p_Var21->_M_header)._M_right" (parenthesized_expression "(p_Var21->_M_header)" ( (field_expression "p_Var21->_M_header" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "p_Var7 = *pp_Var1;" (assignment_expression "p_Var7 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;)) (expression_statement "p_Var21 = (_Rb_tree_header *)p_Var22;" (assignment_expression "p_Var21 = (_Rb_tree_header *)p_Var22" identifier = (cast_expression "(_Rb_tree_header *)p_Var22" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "}" }) while (parenthesized_expression "(*pp_Var1 != (_Base_ptr)0x0)" ( (binary_expression "*pp_Var1 != (_Base_ptr)0x0" (pointer_expression "*pp_Var1" * identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_0021e96a:\n              if (((p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\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_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\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_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\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_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\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_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\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_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\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_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\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_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\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_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\n            std::\n            _Hashtable<std::pair<gold" (binary_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7;\n            std::\n            _Hashtable<std" (assignment_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9] = 0x21e9c7" (subscript_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0;\n            puVar30[-9]" (assignment_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_d0" (subscript_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8]" (assignment_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h" (subscript_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id;\n            puVar30[-7]" (assignment_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6] = &dst_id" (subscript_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8;\n            puVar30[-6]" (assignment_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_e8" (subscript_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5]" (assignment_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0" (subscript_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1;\n            puVar30[-4]" (assignment_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3] = 1" (subscript_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);\n            puVar30[-3]" (binary_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4)" (binary_expression "(p_Var23 == p_Var21) ||\n                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count))" (parenthesized_expression "(p_Var23 == p_Var21)" ( (binary_expression "p_Var23 == p_Var21" identifier == identifier) )) || (parenthesized_expression "(object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count))" ( (binary_expression "object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)" identifier < (parenthesized_expression "(Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)" ( (comma_expression "Sized_relobj_file<32,_true> *)p_Var21->_M_node_count" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)p_Var21->_M_node_count" identifier > (pointer_expression "*)p_Var21->_M_node_count" * (ERROR ")" )) (field_expression "p_Var21->_M_node_count" identifier -> field_identifier)))) ))) ))) || (assignment_expression "((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4)" (field_expression "((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;\n            }\n            __node_gen._M_h" (parenthesized_expression "((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1)))))" ( (parenthesized_expression "(object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))))" ( (binary_expression "object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1)))" identifier == (parenthesized_expression "(Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1)))" ( (comma_expression "Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)p_Var21->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var21 + 1))" (binary_expression "_true> *)p_Var21->_M_node_count" identifier > (pointer_expression "*)p_Var21->_M_node_count" * (ERROR ")" )) (field_expression "p_Var21->_M_node_count" identifier -> field_identifier))) && (parenthesized_expression "(data_shndx < *(uint *)(p_Var21 + 1))" ( (binary_expression "data_shndx < *(uint *)(p_Var21 + 1)" identifier < (pointer_expression "*(uint *)(p_Var21 + 1)" * (cast_expression "(uint *)(p_Var21 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var21 + 1)" ( (binary_expression "p_Var21 + 1" identifier + number_literal) ))))) )))) ))) )) )) (ERROR "goto LAB_0021e980;\n            }\n            __node_gen" identifier identifier ; } identifier) . field_identifier) = (cast_expression "(__hashtable_alloc *)((int)(p_Var21 + 1) + 4)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var21 + 1) + 4)" ( (binary_expression "(int)(p_Var21 + 1) + 4" (cast_expression "(int)(p_Var21 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var21 + 1)" ( (binary_expression "p_Var21 + 1" identifier + number_literal) ))) + number_literal) ))))) (ERROR ";\n            puVar30" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n            puVar30" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n            puVar30" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n            puVar30" ; identifier) [ number_literal ]) = (pointer_expression "&dst_id" & identifier)) (ERROR ";\n            puVar30" ; identifier) [ number_literal ]) = (field_expression "__node_gen._M_h" identifier . field_identifier)) (ERROR ";\n            puVar30" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n            puVar30" ; 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_b8)->target_;" (assignment_expression "pTVar8 = (*local_b8)->target_" identifier = (field_expression "(*local_b8)->target_" (parenthesized_expression "(*local_b8)" ( (pointer_expression "*local_b8" * identifier) )) -> field_identifier)) ;) (if_statement "if (pTVar8 == (Target *)0x0) {\n              puVar30[-3] = local_a8 + -0x59664;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x21f101;\n              gold::do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-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              puVar30[-3] = local_a8 + -0x59664;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x21f101;\n              gold::do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }" { (expression_statement "puVar30[-3] = local_a8 + -0x59664;" (assignment_expression "puVar30[-3] = local_a8 + -0x59664" (subscript_expression "puVar30[-3]" identifier [ number_literal ]) = (binary_expression "local_a8 + -0x59664" identifier + number_literal)) ;) (expression_statement "puVar30[-4] = 0x73;" (assignment_expression "puVar30[-4] = 0x73" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar30[-5] = (int)local_a8 + -0x1a1d93;" (assignment_expression "puVar30[-5] = (int)local_a8 + -0x1a1d93" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "puVar30[-6] = 0x21f101;" (assignment_expression "puVar30[-6] = 0x21f101" (subscript_expression "puVar30[-6]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);" (call_expression "do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3])" identifier (argument_list "((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3])" ( (cast_expression "(char *)puVar30[-5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-5]" identifier [ number_literal ])) , (subscript_expression "puVar30[-4]" identifier [ number_literal ]) , (cast_expression "(char *)puVar30[-3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-3]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "_Var26._M_p = (pointer)pTVar8->_vptr_Target[0x41];" (assignment_expression "_Var26._M_p = (pointer)pTVar8->_vptr_Target[0x41]" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)pTVar8->_vptr_Target[0x41]" ( (type_descriptor "pointer" type_identifier) ) (subscript_expression "pTVar8->_vptr_Target[0x41]" (field_expression "pTVar8->_vptr_Target" identifier -> field_identifier) [ number_literal ]))) ;) (if_statement "if ((General_options *)_Var26._M_p != (General_options *)(local_a8 + -0x1510f0)) {\n              puVar30[-3] = local_b4;\n              puVar30[-4] = local_a4;\n              puVar30[-5] = local_b0;\n              puVar30[-6] = data_shndx;\n              puVar30[-7] = object;\n              puVar30[-8] = symtab;\n              puVar30[-9] = pTVar8;\n              puVar30[-10] = 0x21eb71;\n              (*(code *)_Var26._M_p)();\n              _Var26._M_p = (pointer)extraout_EDX_02;\n            }" if (parenthesized_expression "((General_options *)_Var26._M_p != (General_options *)(local_a8 + -0x1510f0))" ( (binary_expression "(General_options *)_Var26._M_p != (General_options *)(local_a8 + -0x1510f0)" (cast_expression "(General_options *)_Var26._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) != (cast_expression "(General_options *)(local_a8 + -0x1510f0)" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + -0x1510f0)" ( (binary_expression "local_a8 + -0x1510f0" identifier + number_literal) )))) )) (compound_statement "{\n              puVar30[-3] = local_b4;\n              puVar30[-4] = local_a4;\n              puVar30[-5] = local_b0;\n              puVar30[-6] = data_shndx;\n              puVar30[-7] = object;\n              puVar30[-8] = symtab;\n              puVar30[-9] = pTVar8;\n              puVar30[-10] = 0x21eb71;\n              (*(code *)_Var26._M_p)();\n              _Var26._M_p = (pointer)extraout_EDX_02;\n            }" { (expression_statement "puVar30[-3] = local_b4;" (assignment_expression "puVar30[-3] = local_b4" (subscript_expression "puVar30[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-4] = local_a4;" (assignment_expression "puVar30[-4] = local_a4" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-5] = local_b0;" (assignment_expression "puVar30[-5] = local_b0" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-6] = data_shndx;" (assignment_expression "puVar30[-6] = data_shndx" (subscript_expression "puVar30[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-7] = object;" (assignment_expression "puVar30[-7] = object" (subscript_expression "puVar30[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-8] = symtab;" (assignment_expression "puVar30[-8] = symtab" (subscript_expression "puVar30[-8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-9] = pTVar8;" (assignment_expression "puVar30[-9] = pTVar8" (subscript_expression "puVar30[-9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-10] = 0x21eb71;" (assignment_expression "puVar30[-10] = 0x21eb71" (subscript_expression "puVar30[-10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)_Var26._M_p)();" (call_expression "(*(code *)_Var26._M_p)()" (parenthesized_expression "(*(code *)_Var26._M_p)" ( (pointer_expression "*(code *)_Var26._M_p" * (cast_expression "(code *)_Var26._M_p" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier))) )) (argument_list "()" ( ))) ;) (expression_statement "_Var26._M_p = (pointer)extraout_EDX_02;" (assignment_expression "_Var26._M_p = (pointer)extraout_EDX_02" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_02" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) })) (expression_statement "pp_Var17 = local_c4;" (assignment_expression "pp_Var17 = local_c4" identifier = identifier) ;) (expression_statement "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)(puVar30 + -1);" (assignment_expression "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)(puVar30 + -1)" identifier = (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)(puVar30 + -1)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        **)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                        **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                        **" identifier * (pointer_expression "*" * identifier))) )) (argument_list "(puVar30 + -1)" ( (binary_expression "puVar30 + -1" identifier + number_literal) )))) ;) (if_statement "if (local_c4 != (_func_int_varargs **)0x0) {\n              local_a4 = (Relobj *)&local_2c;\n              pGVar9 = symtab->gc_;\n              puVar30[-5] = local_c4;\n              local_a0 = (Icf *)&src_id;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x21ea36;\n              sVar16 = strlen((char *)puVar30[-5]);\n              pIVar13 = local_a0;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var17 + sVar16);\n              puVar30[-4] = pp_Var17;\n              puVar30[-5] = local_a0;\n              puVar30[-6] = 0x21ea4b;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pIVar13;\n              puVar30[-4] = &pGVar9->cident_sections_;\n              puVar30[-5] = &local_9c;\n              puVar30[-6] = 0x21ea5f;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              pcVar14 = local_9c;\n              if (src_id.first != local_a4) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }\n              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2);\n              _Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var22 = (_Base_ptr)pcVar12;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        uVar28 = uVar28 - object->local_symbol_count_;\n        ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar25[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }\n_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);\n        pp_Var35 = pp_Var17;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);\n        bVar38 = false;\n        bVar37 = (!bVar37 && !bVar39) == bVar37;\n        if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }\n        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);\n        if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar30 = ppaVar31;\n        if (bVar27 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4);\n  }" if (parenthesized_expression "(local_c4 != (_func_int_varargs **)0x0)" ( (binary_expression "local_c4 != (_func_int_varargs **)0x0" identifier != (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              local_a4 = (Relobj *)&local_2c;\n              pGVar9 = symtab->gc_;\n              puVar30[-5] = local_c4;\n              local_a0 = (Icf *)&src_id;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x21ea36;\n              sVar16 = strlen((char *)puVar30[-5]);\n              pIVar13 = local_a0;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var17 + sVar16);\n              puVar30[-4] = pp_Var17;\n              puVar30[-5] = local_a0;\n              puVar30[-6] = 0x21ea4b;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pIVar13;\n              puVar30[-4] = &pGVar9->cident_sections_;\n              puVar30[-5] = &local_9c;\n              puVar30[-6] = 0x21ea5f;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              pcVar14 = local_9c;\n              if (src_id.first != local_a4) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }\n              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2);\n              _Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var22 = (_Base_ptr)pcVar12;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        uVar28 = uVar28 - object->local_symbol_count_;\n        ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar25[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }\n_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);\n        pp_Var35 = pp_Var17;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);\n        bVar38 = false;\n        bVar37 = (!bVar37 && !bVar39) == bVar37;\n        if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }\n        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);\n        if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar30 = ppaVar31;\n        if (bVar27 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4);\n  }" { (expression_statement "local_a4 = (Relobj *)&local_2c;" (assignment_expression "local_a4 = (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 "puVar30[-5] = local_c4;" (assignment_expression "puVar30[-5] = local_c4" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_a0 = (Icf *)&src_id;" (assignment_expression "local_a0 = (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 "puVar30[-6] = 0x21ea36;" (assignment_expression "puVar30[-6] = 0x21ea36" (subscript_expression "puVar30[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar16 = strlen((char *)puVar30[-5]);" (assignment_expression "sVar16 = strlen((char *)puVar30[-5])" identifier = (call_expression "strlen((char *)puVar30[-5])" identifier (argument_list "((char *)puVar30[-5])" ( (cast_expression "(char *)puVar30[-5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-5]" identifier [ number_literal ])) )))) ;) (expression_statement "pIVar13 = local_a0;" (assignment_expression "pIVar13 = local_a0" identifier = identifier) ;) (expression_statement "puVar30[-2] = 0;" (assignment_expression "puVar30[-2] = 0" (subscript_expression "puVar30[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar30[-3] = (byte *)((int)pp_Var17 + sVar16);" (assignment_expression "puVar30[-3] = (byte *)((int)pp_Var17 + sVar16)" (subscript_expression "puVar30[-3]" identifier [ number_literal ]) = (cast_expression "(byte *)((int)pp_Var17 + sVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_Var17 + sVar16)" ( (binary_expression "(int)pp_Var17 + sVar16" (cast_expression "(int)pp_Var17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar30[-4] = pp_Var17;" (assignment_expression "puVar30[-4] = pp_Var17" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-5] = local_a0;" (assignment_expression "puVar30[-5] = local_a0" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-6] = 0x21ea4b;" (assignment_expression "puVar30[-6] = 0x21ea4b" (subscript_expression "puVar30[-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 "puVar30[-3] = pIVar13;" (assignment_expression "puVar30[-3] = pIVar13" (subscript_expression "puVar30[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-4] = &pGVar9->cident_sections_;" (assignment_expression "puVar30[-4] = &pGVar9->cident_sections_" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = (pointer_expression "&pGVar9->cident_sections_" & (field_expression "pGVar9->cident_sections_" identifier -> field_identifier))) ;) (expression_statement "puVar30[-5] = &local_9c;" (assignment_expression "puVar30[-5] = &local_9c" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "puVar30[-6] = 0x21ea5f;" (assignment_expression "puVar30[-6] = 0x21ea5f" (subscript_expression "puVar30[-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) : :) (expression_statement "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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              pcVar14 = local_9c;\n              if (src_id.first != local_a4) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }\n              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2);\n              _Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var22 = (_Base_ptr)pcVar12;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        uVar28 = uVar28 - object->local_symbol_count_;\n        ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar25[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }\n_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);\n        pp_Var35 = pp_Var17;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);\n        bVar38 = false;\n        bVar37 = (!bVar37 && !bVar39) == bVar37;\n        if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }\n        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);\n        if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar30 = ppaVar31;\n        if (bVar27 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4);" (binary_expression "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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              pcVar14 = local_9c;\n              if (src_id.first != local_a4) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }\n              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2);\n              _Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var22 = (_Base_ptr)pcVar12;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        uVar28 = uVar28 - object->local_symbol_count_;\n        ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar25[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }\n_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);\n        pp_Var35 = pp_Var17;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);\n        bVar38 = false;\n        bVar37 = (!bVar37 && !bVar39) == bVar37;\n        if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }\n        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);\n        if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar30 = ppaVar31;\n        if (bVar27 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4)" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) (call_expression "find((_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              pcVar14 = local_9c;\n              if (src_id.first != local_a4) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }\n              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2);\n              _Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var22 = (_Base_ptr)pcVar12;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        uVar28 = uVar28 - object->local_symbol_count_;\n        ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar25[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }\n_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);\n        pp_Var35 = pp_Var17;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);\n        bVar38 = false;\n        bVar37 = (!bVar37 && !bVar39) == bVar37;\n        if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }\n        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);\n        if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar30 = ppaVar31;\n        if (bVar27 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4)" identifier (argument_list "((_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              pcVar14 = local_9c;\n              if (src_id.first != local_a4) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }\n              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2);\n              _Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var22 = (_Base_ptr)pcVar12;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        uVar28 = uVar28 - object->local_symbol_count_;\n        ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar25[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }\n_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);\n        pp_Var35 = pp_Var17;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);\n        bVar38 = false;\n        bVar37 = (!bVar37 && !bVar39) == bVar37;\n        if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }\n        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);\n        if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar30 = ppaVar31;\n        if (bVar27 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4)" ( (parenthesized_expression "(_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              pcVar14 = local_9c;\n              if (src_id.first != local_a4) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }\n              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2);\n              _Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var22 = (_Base_ptr)pcVar12;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        uVar28 = uVar28 - object->local_symbol_count_;\n        ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar25[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }\n_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);\n        pp_Var35 = pp_Var17;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);\n        bVar38 = false;\n        bVar37 = (!bVar37 && !bVar39) == bVar37;\n        if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }\n        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);\n        if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar30 = ppaVar31;\n        if (bVar27 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4)" ( (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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              pcVar14 = local_9c;\n              if (src_id.first != local_a4) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }\n              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2);\n              _Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option)" (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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4])" (binary_expression "_unsigned_int>_>_>_>_>_>\n                      *)puVar30[-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 "*)puVar30[-5]" * (ERROR ")" )) (subscript_expression "puVar30[-5]" identifier [ number_literal ]))) , (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-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>_> *)\n                     puVar30[-4]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)\n                     puVar30[-4]" * (ERROR ")" )) (subscript_expression "puVar30[-4]" identifier [ number_literal ]))) ))) ; (call_expression "pcVar14 = local_9c;\n              if (src_id.first != local_a4)" (assignment_expression "pcVar14 = local_9c" identifier = identifier) (ERROR ";\n              if" ; if) (argument_list "(src_id.first != local_a4)" ( (binary_expression "src_id.first != local_a4" (field_expression "src_id.first" identifier . field_identifier) != identifier) ))) (compound_statement "{\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x21ea82;\n                operator_delete((void *)puVar30[-6]);\n              }" { (expression_statement "puVar30[-6] = src_id.first;" (assignment_expression "puVar30[-6] = src_id.first" (subscript_expression "puVar30[-6]" identifier [ number_literal ]) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "puVar30[-7] = 0x21ea82;" (assignment_expression "puVar30[-7] = 0x21ea82" (subscript_expression "puVar30[-7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar30[-6]);" (call_expression "operator_delete((void *)puVar30[-6])" identifier (argument_list "((void *)puVar30[-6])" ( (cast_expression "(void *)puVar30[-6]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-6]" identifier [ number_literal ])) ))) ;) }) (assignment_expression "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2)" identifier = (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)(puVar30 + -2)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                          **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                          **" identifier * (pointer_expression "*" * identifier))) )) (argument_list "(puVar30 + -2)" ( (binary_expression "puVar30 + -2" identifier + number_literal) )))) ; (call_expression "_Var26._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option)" (assignment_expression "_Var26._M_p = (pointer)symtab->gc_" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)symtab->gc_" ( (type_descriptor "pointer" type_identifier) ) (field_expression "symtab->gc_" identifier -> field_identifier))) (ERROR ";\n              if" ; if) (argument_list "((One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option)" ( (binary_expression "(One_option *)pcVar14 !=\n                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option" (cast_expression "(One_option *)pcVar14" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option" & (field_expression "(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.\n                   option" (field_expression "(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special" (parenthesized_expression "(((General_options *)_Var26._M_p)->version_initializer_)" ( (field_expression "((General_options *)_Var26._M_p)->version_initializer_" (parenthesized_expression "((General_options *)_Var26._M_p)" ( (cast_expression "(General_options *)_Var26._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier))) )))) (compound_statement "{\n                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var22 = (_Base_ptr)pcVar12;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        uVar28 = uVar28 - object->local_symbol_count_;\n        ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar25[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }\n_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar20 = 8;\n        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);\n        pp_Var35 = pp_Var17;\n        do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);\n        bVar38 = false;\n        bVar37 = (!bVar37 && !bVar39) == bVar37;\n        if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }\n        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);\n        if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar30 = ppaVar31;\n        if (bVar27 != 0) goto LAB_0021e8f0;\n      }" { (expression_statement "pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;" (assignment_expression "pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8" identifier = (binary_expression "(((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8" (field_expression "(((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf" (field_expression "(((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2" (field_expression "(((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option.longname" (field_expression "(((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special\n                          .option" (field_expression "(((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special" (parenthesized_expression "(((General_options *)_Var26._M_p)->help_initializer_)" ( (field_expression "((General_options *)_Var26._M_p)->help_initializer_" (parenthesized_expression "((General_options *)_Var26._M_p)" ( (cast_expression "(General_options *)_Var26._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) ;) (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 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);" (assignment_expression "p_Var7 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc)" identifier = (pointer_expression "*(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc)" * (cast_expression "(_Base_ptr *)\n                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc)" ( (type_descriptor "_Base_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc)" ( (binary_expression "(int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc" (cast_expression "(int)&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2" & (field_expression "(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2" (field_expression "(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname" (field_expression "(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special.option" (field_expression "(((General_options *)_Var26._M_p)->help_initializer_).\n                                 super_Struct_special" (parenthesized_expression "(((General_options *)_Var26._M_p)->help_initializer_)" ( (field_expression "((General_options *)_Var26._M_p)->help_initializer_" (parenthesized_expression "((General_options *)_Var26._M_p)" ( (cast_expression "(General_options *)_Var26._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var26._M_p" identifier . field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "p_Var22 = (_Base_ptr)pcVar12;" (assignment_expression "p_Var22 = (_Base_ptr)pcVar12" identifier = (cast_expression "(_Base_ptr)pcVar12" ( (type_descriptor "_Base_ptr" type_identifier) ) identifier)) ;) (if_statement "if (p_Var7 == (_Base_ptr)0x0) {\nLAB_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\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_0021ebb8:\n                  puVar30[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar30[-7] = 0x21ebd6;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }" { (labeled_statement "LAB_0021ebb8:\n                  puVar30[-6] = &local_70;" statement_identifier : (expression_statement "puVar30[-6] = &local_70;" (assignment_expression "puVar30[-6] = &local_70" (subscript_expression "puVar30[-6]" identifier [ number_literal ]) = (pointer_expression "&local_70" & identifier)) ;)) (expression_statement "local_70 = local_a0;" (assignment_expression "local_70 = local_a0" identifier = identifier) ;) (expression_statement "puVar30[-7] = 0x21ebd6;" (assignment_expression "puVar30[-7] = 0x21ebd6" (subscript_expression "puVar30[-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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;" (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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da" (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > (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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da" ( (assignment_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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da" (call_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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppaVar31 + -8)" (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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0021ecef:\n          *(undefined ***)" ( (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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0" (binary_expression "_unsigned_int>_>_>_>_>_>\n                              *)puVar30[-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 "*)puVar30[-6]" * (ERROR ")" )) (subscript_expression "puVar30[-6]" identifier [ number_literal ]))) , (comma_expression "(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0" (cast_expression "(_Base_ptr)puVar30[-5]" ( (type_descriptor "_Base_ptr" type_identifier) ) (subscript_expression "puVar30[-5]" identifier [ number_literal ])) , (assignment_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0" (field_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_) {\n          src_id_1.first" (parenthesized_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_)" ( (ERROR "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  p_Var23 = local_98;\n                  _Var26._M_p = (pointer)extraout_EDX_03;\n                }\n                else" (comma_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2])" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-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 "&> *)puVar30[-4]" & (ERROR ">" >) (pointer_expression "*)puVar30[-4]" * (ERROR ")" )) (subscript_expression "puVar30[-4]" identifier [ number_literal ])))) , (parenthesized_expression "(tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2])" ( (comma_expression "tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]" (binary_expression "tuple<> *)puVar30[-3]" identifier < (ERROR ">" >) (pointer_expression "*)puVar30[-3]" * (ERROR ")" )) (subscript_expression "puVar30[-3]" identifier [ number_literal ]))) , (cast_expression "(piecewise_construct_t *)puVar30[-2]" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-2]" identifier [ number_literal ]))) ))) ; (assignment_expression "p_Var23 = local_98" identifier = identifier) ; (assignment_expression "_Var26._M_p = (pointer)extraout_EDX_03" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_03" ( (type_descriptor "pointer" type_identifier) ) identifier)) ; } else) (compound_statement "{\n                  do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);\n                puVar30 = puVar30 + -2;\n                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }" { (do_statement "do {\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;\n                    p_Var23 = (_Rb_tree_header *)p_Var22;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);" do (ERROR "{\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }\n                    pp_Var1 = &(p_Var23->_M_header)._M_right;\n                    p_Var7 = *pp_Var1;" (compound_statement "{\n                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;\n                    }" { (while_statement "while ((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;" while (parenthesized_expression "((p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0)" ( (binary_expression "(p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0" (field_expression "(p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)._M_left" (parenthesized_expression "(p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left;\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_M_header)" ( (comma_expression "p_Var23 = (_Rb_tree_header *)p_Var7,\n                           object <= (Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left" (assignment_expression "p_Var23 = (_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_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left" identifier <= (assignment_expression "(Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {\n                      p_Var7 = (p_Var23->_M_header)._M_left" (parenthesized_expression "(Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1])))))" ( (comma_expression "Sized_relobj_file<32,_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))" (binary_expression "_true> *)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var23 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var23 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var23 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var23 + 0x10)" ( (binary_expression "(int)p_Var23 + 0x10" (cast_expression "(int)p_Var23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) && (parenthesized_expression "((object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))" ( (parenthesized_expression "(object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1])))" ( (binary_expression "object != (Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))" identifier != (parenthesized_expression "(Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))" ( (comma_expression "Sized_relobj_file<32,_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1])" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1])" (binary_expression "_true> *)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var23 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var23 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var23 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var23 + 0x10)" ( (binary_expression "(int)p_Var23 + 0x10" (cast_expression "(int)p_Var23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) || (parenthesized_expression "(data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1])" ( (binary_expression "data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]" identifier <= (subscript_expression "((size_t *)((int)p_Var23 + 0x10))[1]" (parenthesized_expression "((size_t *)((int)p_Var23 + 0x10))" ( (cast_expression "(size_t *)((int)p_Var23 + 0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var23 + 0x10)" ( (binary_expression "(int)p_Var23 + 0x10" (cast_expression "(int)p_Var23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) [ number_literal ])) )))) ))) )) )))) )) (ERROR "{\n                      p_Var7" { identifier) = (field_expression "(p_Var23->_M_header)._M_left" (parenthesized_expression "(p_Var23->_M_header)" ( (field_expression "p_Var23->_M_header" identifier -> field_identifier) )) . field_identifier)))) (ERROR ";\n                      p_Var22 = &p_Var23->_M_header;\n                      if ((p_Var23->_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_0021eae2;" goto statement_identifier ;)) }) (expression_statement "pp_Var1 = &(p_Var23->_M_header)._M_right;" (assignment_expression "pp_Var1 = &(p_Var23->_M_header)._M_right" identifier = (pointer_expression "&(p_Var23->_M_header)._M_right" & (field_expression "(p_Var23->_M_header)._M_right" (parenthesized_expression "(p_Var23->_M_header)" ( (field_expression "p_Var23->_M_header" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "p_Var7 = *pp_Var1;" (assignment_expression "p_Var7 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;)) (expression_statement "p_Var23 = (_Rb_tree_header *)p_Var22;" (assignment_expression "p_Var23 = (_Rb_tree_header *)p_Var22" identifier = (cast_expression "(_Rb_tree_header *)p_Var22" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "}" }) while (parenthesized_expression "(*pp_Var1 != (_Base_ptr)0x0)" ( (binary_expression "*pp_Var1 != (_Base_ptr)0x0" (pointer_expression "*pp_Var1" * identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_0021eae2:\n                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);" statement_identifier : (if_statement "if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2);" if (parenthesized_expression "(((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2)" ( (call_expression "((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)(puVar30 + -2)" (parenthesized_expression "((p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)" ( (ERROR "(p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "(p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std" (binary_expression "(p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1)))))" (binary_expression "(p_Var23 == (_Rb_tree_header *)pcVar12) ||\n                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count))" (parenthesized_expression "(p_Var23 == (_Rb_tree_header *)pcVar12)" ( (binary_expression "p_Var23 == (_Rb_tree_header *)pcVar12" identifier == (cast_expression "(_Rb_tree_header *)pcVar12" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count))" ( (binary_expression "object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)" identifier < (parenthesized_expression "(Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)" ( (comma_expression "Sized_relobj_file<32,_true> *)p_Var23->_M_node_count" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)p_Var23->_M_node_count" identifier > (pointer_expression "*)p_Var23->_M_node_count" * (ERROR ")" )) (field_expression "p_Var23->_M_node_count" identifier -> field_identifier)))) ))) ))) || (parenthesized_expression "((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1)))))" ( (parenthesized_expression "(object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))))" ( (binary_expression "object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1)))" identifier == (parenthesized_expression "(Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1)))" ( (comma_expression "Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> *)p_Var23->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var23 + 1))" (binary_expression "_true> *)p_Var23->_M_node_count" identifier > (pointer_expression "*)p_Var23->_M_node_count" * (ERROR ")" )) (field_expression "p_Var23->_M_node_count" identifier -> field_identifier))) && (parenthesized_expression "(data_shndx < *(uint *)(p_Var23 + 1))" ( (binary_expression "data_shndx < *(uint *)(p_Var23 + 1)" identifier < (pointer_expression "*(uint *)(p_Var23 + 1)" * (cast_expression "(uint *)(p_Var23 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var23 + 1)" ( (binary_expression "p_Var23 + 1" identifier + number_literal) ))))) )))) ))) )) ))) (ERROR "goto LAB_0021ebb8;\n                }\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>" identifier identifier ; } identifier = ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : :) (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (binary_expression "allocator<char>_>_9\n                            **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                            **" identifier * (pointer_expression "*" * identifier))) )) (argument_list "(puVar30 + -2)" ( (binary_expression "puVar30 + -2" identifier + number_literal) ))) )) (expression_statement ";" ;))) (expression_statement "puVar30 = puVar30 + -2;" (assignment_expression "puVar30 = puVar30 + -2" identifier = (binary_expression "puVar30 + -2" identifier + number_literal)) ;) (for_statement "for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;\n                    puVar10 = (undefined4 *)*puVar10) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }" for ( (assignment_expression "puVar10 = *(undefined4 **)(pcVar14 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(pcVar14 + 0x30)" * (cast_expression "(undefined4 **)(pcVar14 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x30)" ( (binary_expression "pcVar14 + 0x30" identifier + number_literal) ))))) ; (binary_expression "puVar10 != (undefined4 *)0x0" 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))) ) (compound_statement "{\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;\n                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);\n                  pVar41 = 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                  _Var26._M_p = pVar41._4_4_;\n                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }" { (expression_statement "*(undefined4 *)((int)puVar30 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)puVar30 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar30 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;" (assignment_expression "*(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1" (pointer_expression "*(__node_gen_type **)((int)puVar30 + -0x14)" * (cast_expression "(__node_gen_type **)((int)puVar30 + -0x14)" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__node_gen_1" & identifier)) ;) (expression_statement "*(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;" (assignment_expression "*(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1" (pointer_expression "*(undefined4 **)((int)puVar30 + -0x18)" * (cast_expression "(undefined4 **)((int)puVar30 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x18)" ( (binary_expression "(int)puVar30 + -0x18" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "*(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);" (assignment_expression "*(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4)" (pointer_expression "*(char **)((int)puVar30 + -0x1c)" * (cast_expression "(char **)((int)puVar30 + -0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x1c)" ( (binary_expression "(int)puVar30 + -0x1c" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char *)((int)(p_Var23 + 1) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var23 + 1) + 4)" ( (binary_expression "(int)(p_Var23 + 1) + 4" (cast_expression "(int)(p_Var23 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var23 + 1)" ( (binary_expression "p_Var23 + 1" identifier + number_literal) ))) + number_literal) )))) ;) (expression_statement "*(undefined1 **)((int)puVar30 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)puVar30 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)puVar30 + -0x20)" * (cast_expression "(undefined1 **)((int)puVar30 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x20)" ( (binary_expression "(int)puVar30 + -0x20" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x24)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x24)" ( (binary_expression "(int)puVar30 + -0x24" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);" (assignment_expression "__node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4)" (field_expression "__node_gen_1._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)((int)(p_Var23 + 1) + 4)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var23 + 1) + 4)" ( (binary_expression "(int)(p_Var23 + 1) + 4" (cast_expression "(int)(p_Var23 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var23 + 1)" ( (binary_expression "p_Var23 + 1" identifier + number_literal) ))) + number_literal) )))) ;) (ERROR "pVar41 = 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::" (assignment_expression "pVar41 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                           ::\n                           _M_insert<const_std" identifier , (binary_expression "_true>_>\n                           ::\n                           _M_insert<const_std" (binary_expression "_true>_>\n                           ::\n                           _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier *) , (binary_expression "_unsigned_int>&,_std" identifier > (pointer_expression "&,_std" & (ERROR "," ,) identifier))) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ()" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                                     ()" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "()" ( identifier )))) ;))))) (expression_statement "_Var26._M_p = pVar41._4_4_;" (assignment_expression "_Var26._M_p = pVar41._4_4_" (field_expression "_Var26._M_p" identifier . field_identifier) = (field_expression "pVar41._4_4_" identifier . field_identifier)) ;) (expression_statement "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4);" (assignment_expression "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4)" identifier = (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)((int)puVar30 + -4)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                              **)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                              **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                              **" identifier * (pointer_expression "*" * identifier))) )) (argument_list "((int)puVar30 + -4)" ( (binary_expression "(int)puVar30 + -4" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar30 = (undefined4 *)((int)puVar30 + -4);" (assignment_expression "puVar30 = (undefined4 *)((int)puVar30 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar30 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -4)" ( (binary_expression "(int)puVar30 + -4" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) }) (ERROR "}\n          }\n        }\n      }\n      else {\n        if (uVar28 < object->local_symbol_count_" } } } } else { if ( identifier < identifier -> identifier) )) (ERROR "{\n          src_id_1" { identifier) . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) (ERROR ";\nLAB_0021ecef:\n          *(undefined ***" ; identifier : * ( identifier * * *) )) (argument_list "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) = (binary_expression "local_a8 + -0x596da" identifier + number_literal)) ))) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0xc)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;" (assignment_expression "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36" (pointer_expression "*(int *)((int)ppaVar31 + -0x10)" * (cast_expression "(int *)((int)ppaVar31 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x19ca36" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));" (call_expression "do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8))" identifier (argument_list "(*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8))" ( (pointer_expression "*(char **)((int)ppaVar31 + -0x10)" * (cast_expression "(char **)((int)ppaVar31 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppaVar31 + -0xc)" * (cast_expression "(int *)((int)ppaVar31 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppaVar31 + -8)" * (cast_expression "(char **)((int)ppaVar31 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "uVar28 = uVar28 - object->local_symbol_count_;" (assignment_expression "uVar28 = uVar28 - object->local_symbol_count_" identifier = (binary_expression "uVar28 - object->local_symbol_count_" identifier - (field_expression "object->local_symbol_count_" identifier -> field_identifier))) ;) (expression_statement "ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start;" (field_expression "ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_start" (field_expression "ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar25 = (object->symbols_).\n                   super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar25 = (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_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;" (field_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish" (field_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std" (assignment_expression "local_a0 = (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_a0 - (int)ppSVar25 >> 2) <= uVar28) {\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }" if (parenthesized_expression "((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28)" ( (binary_expression "(uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28" (call_expression "(uint)((int)local_a0 - (int)ppSVar25 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_a0 - (int)ppSVar25 >> 2)" ( (binary_expression "(int)local_a0 - (int)ppSVar25 >> 2" (binary_expression "(int)local_a0 - (int)ppSVar25" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppSVar25" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;\n          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));\n        }" { (expression_statement "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;" (assignment_expression "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678" (pointer_expression "*(undefined ***)((int)ppaVar31 + -8)" * (cast_expression "(undefined ***)((int)ppaVar31 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x59678" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0xc)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;" (assignment_expression "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b" (pointer_expression "*(int *)((int)ppaVar31 + -0x10)" * (cast_expression "(int *)((int)ppaVar31 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x19cc7b" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8));" (call_expression "do_gold_unreachable\n                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8))" identifier (argument_list "(*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                     *(char **)((int)ppaVar31 + -8))" ( (pointer_expression "*(char **)((int)ppaVar31 + -0x10)" * (cast_expression "(char **)((int)ppaVar31 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppaVar31 + -0xc)" * (cast_expression "(int *)((int)ppaVar31 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppaVar31 + -8)" * (cast_expression "(char **)((int)ppaVar31 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "src_id_1.first = (Relobj *)ppSVar25[uVar28];" (assignment_expression "src_id_1.first = (Relobj *)ppSVar25[uVar28]" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)ppSVar25[uVar28]" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppSVar25[uVar28]" identifier [ identifier ]))) ;) (if_statement "if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;" 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_0021ecef;" goto statement_identifier ;)) (if_statement "if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\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          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));\n          ppSVar25 = extraout_EDX_04;\n        }" { (expression_statement "*(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;" (assignment_expression "*(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first" (pointer_expression "*(Relobj **)((int)ppaVar31 + -0xc)" * (cast_expression "(Relobj **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id_1.first" identifier . field_identifier)) ;) (expression_statement "*(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;" (assignment_expression "*(Symbol_table **)((int)ppaVar31 + -0x10) = symtab" (pointer_expression "*(Symbol_table **)((int)ppaVar31 + -0x10)" * (cast_expression "(Symbol_table **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) 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 **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc));" (call_expression "resolve_forwards\n                         (*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc))" identifier (argument_list "(*(Symbol_table **)((int)ppaVar31 + -0x10),\n                          *(Symbol **)((int)ppaVar31 + -0xc))" ( (pointer_expression "*(Symbol_table **)((int)ppaVar31 + -0x10)" * (cast_expression "(Symbol_table **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol **)((int)ppaVar31 + -0xc)" * (cast_expression "(Symbol **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "ppSVar25 = extraout_EDX_04;" (assignment_expression "ppSVar25 = extraout_EDX_04" identifier = identifier) ;) })) (if_statement "if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }" if (parenthesized_expression "((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0)" ( (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) )) (compound_statement "{\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }" { (expression_statement "local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;" (assignment_expression "local_d8 = (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_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;" (assignment_expression "local_b0 = ((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 "local_b4 = (int)&local_ac->first + (int)local_d8;" (assignment_expression "local_b4 = (int)&local_ac->first + (int)local_d8" identifier = (binary_expression "(int)&local_ac->first + (int)local_d8" (cast_expression "(int)&local_ac->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_ac->first" & (field_expression "local_ac->first" identifier -> field_identifier))) + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((uint)local_b0->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            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }\n          else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }" if (parenthesized_expression "(((uint)local_b0->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_end_of_storage & 1) == 0)" ( (binary_expression "((uint)local_b0->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_b0->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_end_of_storage & 1)" ( (binary_expression "(uint)local_b0->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_end_of_storage & 1" (field_expression "(uint)local_b0->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_end_of_storage" (field_expression "(uint)local_b0->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl" (binary_expression "(uint)local_b0->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(uint)local_b0->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(uint)local_b0->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)local_b0->output_lists_[3].\n                     super__Vector_base<gold" (cast_expression "(uint)local_b0->output_lists_[3].\n                     super__Vector_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_b0->output_lists_[3].\n                     super__Vector_base" (subscript_expression "local_b0->output_lists_[3]" (field_expression "local_b0->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar37 = (byte)ppSVar25 < 2;\n            bVar39 = (byte)ppSVar25 == 2;\n            if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }\n          }" { (expression_statement "local_a4 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;" (assignment_expression "local_a4 = (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 "ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);" (assignment_expression "ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf)" identifier = (call_expression "(pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte)((src_id_1.first)->super_Object).shnum_ & 0xf)" ( (binary_expression "(byte)((src_id_1.first)->super_Object).shnum_ & 0xf" (field_expression "(byte)((src_id_1.first)->super_Object).shnum_" (call_expression "(byte)((src_id_1.first)->super_Object)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((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) )))) ;) (expression_statement "bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;" (assignment_expression "bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1" (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) & number_literal)) ;) (expression_statement "bVar37 = (byte)ppSVar25 < 2;" (assignment_expression "bVar37 = (byte)ppSVar25 < 2" identifier = (binary_expression "(byte)ppSVar25 < 2" (cast_expression "(byte)ppSVar25" ( (type_descriptor "byte" type_identifier) ) identifier) < number_literal)) ;) (expression_statement "bVar39 = (byte)ppSVar25 == 2;" (assignment_expression "bVar39 = (byte)ppSVar25 == 2" identifier = (binary_expression "(byte)ppSVar25 == 2" (cast_expression "(byte)ppSVar25" ( (type_descriptor "byte" type_identifier) ) identifier) == number_literal)) ;) (if_statement "if (bVar39) {\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }" if (parenthesized_expression "(bVar39)" ( identifier )) (compound_statement "{\n              bVar37 = false;\n              bVar39 = local_be == false;\n              if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }\n            }" { (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar39 = local_be == false;" (assignment_expression "bVar39 = local_be == false" identifier = (binary_expression "local_be == false" identifier == false)) ;) (if_statement "if (!bVar39) {\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }" if (parenthesized_expression "(!bVar39)" ( (unary_expression "!bVar39" ! identifier) )) (compound_statement "{\n                if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;\n                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                pVar41 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                ppSVar25 = pVar41._4_4_;\n                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);\n                bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);\n              }" { (if_statement "if (bVar27 != 0) {\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }" if (parenthesized_expression "(bVar27 != 0)" ( (binary_expression "bVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                  if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }\n                  if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }\n                }" { (if_statement "if ((*local_b8)->options_ == (General_options *)0x0) {\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }" if (parenthesized_expression "((*local_b8)->options_ == (General_options *)0x0)" ( (binary_expression "(*local_b8)->options_ == (General_options *)0x0" (field_expression "(*local_b8)->options_" (parenthesized_expression "(*local_b8)" ( (pointer_expression "*local_b8" * identifier) )) -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;\n                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */\n                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));\n                  }" { (expression_statement "*(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;" (assignment_expression "*(Relobj **)((int)ppaVar31 + -4) = src_id_1.first" (pointer_expression "*(Relobj **)((int)ppaVar31 + -4)" * (cast_expression "(Relobj **)((int)ppaVar31 + -4)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -4)" ( (binary_expression "(int)ppaVar31 + -4" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id_1.first" identifier . field_identifier)) ;) (expression_statement "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppaVar31 + -8)" * (cast_expression "(undefined ***)((int)ppaVar31 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0xc)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppaVar31 + -0x10)" * (cast_expression "(int *)((int)ppaVar31 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8));" (call_expression "do_gold_unreachable\n                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8))" identifier (argument_list "(*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),\n                               *(char **)((int)ppaVar31 + -8))" ( (pointer_expression "*(char **)((int)ppaVar31 + -0x10)" * (cast_expression "(char **)((int)ppaVar31 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppaVar31 + -0xc)" * (cast_expression "(int *)((int)ppaVar31 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppaVar31 + -8)" * (cast_expression "(char **)((int)ppaVar31 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if ((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }" if (parenthesized_expression "((((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0))" ( (binary_expression "(((*local_b8)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)" (parenthesized_expression "(((*local_b8)->options_->shared_).value == false)" ( (binary_expression "((*local_b8)->options_->shared_).value == false" (field_expression "((*local_b8)->options_->shared_).value" (parenthesized_expression "((*local_b8)->options_->shared_)" ( (field_expression "(*local_b8)->options_->shared_" (field_expression "(*local_b8)->options_" (parenthesized_expression "(*local_b8)" ( (pointer_expression "*local_b8" * identifier) )) -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) || (parenthesized_expression "((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)" ( (binary_expression "(((src_id_1.first)->super_Object).shnum_ & 0x300) == 0" (parenthesized_expression "(((src_id_1.first)->super_Object).shnum_ & 0x300)" ( (binary_expression "((src_id_1.first)->super_Object).shnum_ & 0x300" (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                    ppSVar25 = (pointer)(local_e4 - 4);\n                    bVar37 = ppSVar25 < (pointer)0x36;\n                    bVar39 = ppSVar25 == (pointer)0x36;\n                    if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto _L5607;\n                  }" { (expression_statement "ppSVar25 = (pointer)(local_e4 - 4);" (assignment_expression "ppSVar25 = (pointer)(local_e4 - 4)" identifier = (call_expression "(pointer)(local_e4 - 4)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(local_e4 - 4)" ( (binary_expression "local_e4 - 4" identifier - number_literal) )))) ;) (expression_statement "bVar37 = ppSVar25 < (pointer)0x36;" (assignment_expression "bVar37 = ppSVar25 < (pointer)0x36" identifier = (binary_expression "ppSVar25 < (pointer)0x36" identifier < (cast_expression "(pointer)0x36" ( (type_descriptor "pointer" type_identifier) ) number_literal))) ;) (expression_statement "bVar39 = ppSVar25 == (pointer)0x36;" (assignment_expression "bVar39 = ppSVar25 == (pointer)0x36" identifier = (binary_expression "ppSVar25 == (pointer)0x36" identifier == (cast_expression "(pointer)0x36" ( (type_descriptor "pointer" type_identifier) ) number_literal))) ;) (if_statement "if (ppSVar25 < (pointer)0x37) {\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }" if (parenthesized_expression "(ppSVar25 < (pointer)0x37)" ( (binary_expression "ppSVar25 < (pointer)0x37" identifier < (cast_expression "(pointer)0x37" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }" { comment comment (expression_statement "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();" (call_expression "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))()" (parenthesized_expression "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))" ( (pointer_expression "*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8)" * (cast_expression "(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8[local_e4 - 0x597df] + (int)local_a8)" ( (binary_expression "local_a8[local_e4 - 0x597df] + (int)local_a8" (subscript_expression "local_a8[local_e4 - 0x597df]" identifier [ (binary_expression "local_e4 - 0x597df" identifier - number_literal) ]) + (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto _L5607;" goto statement_identifier ;) })) })) (expression_statement "local_a0 = symtab->icf_;" (assignment_expression "local_a0 = symtab->icf_" identifier = (field_expression "symtab->icf_" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0xc)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x10)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;" (assignment_expression "*(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3" (pointer_expression "*(__node_gen_type **)((int)ppaVar31 + -0x14)" * (cast_expression "(__node_gen_type **)((int)ppaVar31 + -0x14)" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__node_gen_3" & identifier)) ;) (expression_statement "*(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;" (assignment_expression "*(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64" (pointer_expression "*(Output_segment ***)((int)ppaVar31 + -0x18)" * (cast_expression "(Output_segment ***)((int)ppaVar31 + -0x18)" ( (type_descriptor "Output_segment ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -0x18)" ( (binary_expression "(int)ppaVar31 + -0x18" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "__node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;" (assignment_expression "__node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_" (field_expression "__node_gen_3._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&local_a0->fptr_section_id_" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_a0->fptr_section_id_" & (field_expression "local_a0->fptr_section_id_" identifier -> field_identifier)))) ;) (expression_statement "*(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;" (assignment_expression "*(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h" (pointer_expression "*(__hashtable_alloc **)((int)ppaVar31 + -0x1c)" * (cast_expression "(__hashtable_alloc **)((int)ppaVar31 + -0x1c)" ( (type_descriptor "__hashtable_alloc **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x1c)" ( (binary_expression "(int)ppaVar31 + -0x1c" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "__node_gen_3._M_h" identifier . field_identifier)) ;) (expression_statement "*(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)ppaVar31 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)ppaVar31 + -0x20)" * (cast_expression "(undefined1 **)((int)ppaVar31 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x20)" ( (binary_expression "(int)ppaVar31 + -0x20" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x24)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x24)" ( (binary_expression "(int)ppaVar31 + -0x24" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_b0;" (assignment_expression "local_64 = local_b0" identifier = identifier) ;) (expression_statement "local_60 = local_a4;" (assignment_expression "local_60 = local_a4" identifier = identifier) ;) (ERROR "pVar41 = 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::" (assignment_expression "pVar41 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                         ::\n                         _M_insert<std" identifier , (binary_expression "_true>_>\n                         ::\n                         _M_insert<std" (binary_expression "_true>_>\n                         ::\n                         _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ()" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                                   ()" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "()" ( identifier )))) ;))))) (expression_statement "ppSVar25 = pVar41._4_4_;" (assignment_expression "ppSVar25 = pVar41._4_4_" identifier = (field_expression "pVar41._4_4_" identifier . field_identifier)) ;) (expression_statement "bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);" (assignment_expression "bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20)" identifier = (binary_expression "(undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20)" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)ppaVar31 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x20)" ( (binary_expression "(int)ppaVar31 + -0x20" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4);" (assignment_expression "bVar39 = ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4)" identifier = (binary_expression "ppaVar31 ==\n                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4)" identifier == (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;\n                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          **)0x4;" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_9\n                          **)0x4" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                          **)0x4" identifier * (pointer_expression "*)0x4" * (ERROR ")" )) number_literal))) ;) (assignment_expression "ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4)" identifier = (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)((int)ppaVar31 + -4)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                            **)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                            **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                            **" identifier * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -4)" ( (binary_expression "(int)ppaVar31 + -4" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) })) })) }) (else_clause "else {\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }" else (compound_statement "{\n            local_a4 = (Relobj *)0x0;\n            bVar37 = false;\n            bVar27 = 0;\n            bVar39 = true;\n            local_b0 = (Output_segment *)0x0;\n          }" { (expression_statement "local_a4 = (Relobj *)0x0;" (assignment_expression "local_a4 = (Relobj *)0x0" identifier = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "bVar39 = true;" (assignment_expression "bVar39 = true" identifier = true) ;) (expression_statement "local_b0 = (Output_segment *)0x0;" (assignment_expression "local_b0 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }" else (compound_statement "{\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          bVar27 = 0;\n          local_a4 = (Relobj *)0x0;\n          local_b0 = (Output_segment *)0x0;\n          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (int)&local_ac->first + (int)local_d8;\n          bVar39 = local_b4 == 0;\n        }" { (expression_statement "local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;" (assignment_expression "local_d8 = (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 "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = (Relobj *)0x0;" (assignment_expression "local_a4 = (Relobj *)0x0" identifier = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (Output_segment *)0x0;" (assignment_expression "local_b0 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar37 = CARRY4((uint)local_ac,(uint)local_d8);" (assignment_expression "bVar37 = CARRY4((uint)local_ac,(uint)local_d8)" identifier = (call_expression "CARRY4((uint)local_ac,(uint)local_d8)" identifier (argument_list "((uint)local_ac,(uint)local_d8)" ( (cast_expression "(uint)local_ac" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_d8" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_b4 = (int)&local_ac->first + (int)local_d8;" (assignment_expression "local_b4 = (int)&local_ac->first + (int)local_d8" identifier = (binary_expression "(int)&local_ac->first + (int)local_d8" (cast_expression "(int)&local_ac->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_ac->first" & (field_expression "local_ac->first" identifier -> field_identifier))) + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar39 = local_b4 == 0;" (assignment_expression "bVar39 = local_b4 == 0" identifier = (binary_expression "local_b4 == 0" identifier == number_literal)) ;) }))) (labeled_statement "_L5607:\n        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;" statement_identifier : (expression_statement "pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var17 = ((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 "pbVar33 = (byte *)((int)local_a8 + -0x19ca26);" (assignment_expression "pbVar33 = (byte *)((int)local_a8 + -0x19ca26)" identifier = (cast_expression "(byte *)((int)local_a8 + -0x19ca26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19ca26)" ( (binary_expression "(int)local_a8 + -0x19ca26" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pp_Var35 = pp_Var17;" (assignment_expression "pp_Var35 = pp_Var17" identifier = identifier) ;) (do_statement "do {\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n        } while (bVar39);" do (compound_statement "{\n          if (iVar20 == 0) break;\n          iVar20 = iVar20 + -1;\n          bVar37 = *pbVar33 < *(byte *)pp_Var35;\n          bVar39 = *pbVar33 == *(byte *)pp_Var35;\n          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -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 "bVar37 = *pbVar33 < *(byte *)pp_Var35;" (assignment_expression "bVar37 = *pbVar33 < *(byte *)pp_Var35" identifier = (binary_expression "*pbVar33 < *(byte *)pp_Var35" (pointer_expression "*pbVar33" * identifier) < (pointer_expression "*(byte *)pp_Var35" * (cast_expression "(byte *)pp_Var35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar39 = *pbVar33 == *(byte *)pp_Var35;" (assignment_expression "bVar39 = *pbVar33 == *(byte *)pp_Var35" identifier = (binary_expression "*pbVar33 == *(byte *)pp_Var35" (pointer_expression "*pbVar33" * identifier) == (pointer_expression "*(byte *)pp_Var35" * (cast_expression "(byte *)pp_Var35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar33 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);" (assignment_expression "pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var35 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)pp_Var35 + (uint)bVar40 * -2 + 1" (binary_expression "(int)pp_Var35 + (uint)bVar40 * -2" (cast_expression "(int)pp_Var35" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar39)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar37 = (!bVar37 && !bVar39) == bVar37;" (assignment_expression "bVar37 = (!bVar37 && !bVar39) == bVar37" identifier = (binary_expression "(!bVar37 && !bVar39) == bVar37" (parenthesized_expression "(!bVar37 && !bVar39)" ( (binary_expression "!bVar37 && !bVar39" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar39" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar37) {\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }\n        else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }" if (parenthesized_expression "(bVar37)" ( identifier )) (compound_statement "{\n          local_c4 = pp_Var17 + 2;\n          cVar24 = '\0';\n        }" { (expression_statement "local_c4 = pp_Var17 + 2;" (assignment_expression "local_c4 = pp_Var17 + 2" identifier = (binary_expression "pp_Var17 + 2" identifier + number_literal)) ;) (expression_statement "cVar24 = '\0';" (assignment_expression "cVar24 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }" else (compound_statement "{\n          iVar20 = 7;\n          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);\n          pp_Var35 = pp_Var17;\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);\n          cVar24 = (!bVar38 && !bVar37) - bVar38;\n          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);\n          if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }\n          local_c4 = pp_Var17;\n        }" { (expression_statement "iVar20 = 7;" (assignment_expression "iVar20 = 7" identifier = number_literal) ;) (expression_statement "pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);" (assignment_expression "pbVar33 = (byte *)((int)local_a8 + -0x19ca1d)" identifier = (cast_expression "(byte *)((int)local_a8 + -0x19ca1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19ca1d)" ( (binary_expression "(int)local_a8 + -0x19ca1d" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pp_Var35 = pp_Var17;" (assignment_expression "pp_Var35 = pp_Var17" identifier = identifier) ;) (do_statement "do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);\n          } while (bVar37);" do (compound_statement "{\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar38 = *pbVar33 < *(byte *)pp_Var35;\n            bVar37 = *pbVar33 == *(byte *)pp_Var35;\n            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;\n            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -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 "bVar38 = *pbVar33 < *(byte *)pp_Var35;" (assignment_expression "bVar38 = *pbVar33 < *(byte *)pp_Var35" identifier = (binary_expression "*pbVar33 < *(byte *)pp_Var35" (pointer_expression "*pbVar33" * identifier) < (pointer_expression "*(byte *)pp_Var35" * (cast_expression "(byte *)pp_Var35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar37 = *pbVar33 == *(byte *)pp_Var35;" (assignment_expression "bVar37 = *pbVar33 == *(byte *)pp_Var35" identifier = (binary_expression "*pbVar33 == *(byte *)pp_Var35" (pointer_expression "*pbVar33" * identifier) == (pointer_expression "*(byte *)pp_Var35" * (cast_expression "(byte *)pp_Var35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar33 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);" (assignment_expression "pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var35 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)pp_Var35 + (uint)bVar40 * -2 + 1" (binary_expression "(int)pp_Var35 + (uint)bVar40 * -2" (cast_expression "(int)pp_Var35" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar37)" ( identifier )) ;) (expression_statement "cVar24 = (!bVar38 && !bVar37) - bVar38;" (assignment_expression "cVar24 = (!bVar38 && !bVar37) - bVar38" identifier = (binary_expression "(!bVar38 && !bVar37) - bVar38" (parenthesized_expression "(!bVar38 && !bVar37)" ( (binary_expression "!bVar38 && !bVar37" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar37" ! identifier)) )) - identifier)) ;) (expression_statement "pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);" (assignment_expression "pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var17 + 7)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var17 + 7)" ( (binary_expression "(int)pp_Var17 + 7" (cast_expression "(int)pp_Var17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (cVar24 != '\0') {\n            pp_Var17 = local_c4;\n          }" if (parenthesized_expression "(cVar24 != '\0')" ( (binary_expression "cVar24 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pp_Var17 = local_c4;\n          }" { (expression_statement "pp_Var17 = local_c4;" (assignment_expression "pp_Var17 = local_c4" identifier = identifier) ;) })) (expression_statement "local_c4 = pp_Var17;" (assignment_expression "local_c4 = pp_Var17" identifier = identifier) ;) }))) (expression_statement "_Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);" (assignment_expression "_Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24)" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24)" identifier (argument_list "((int3)((uint)ppSVar25 >> 8),cVar24)" ( (call_expression "(int3)((uint)ppSVar25 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)ppSVar25 >> 8)" ( (binary_expression "(uint)ppSVar25 >> 8" (cast_expression "(uint)ppSVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , identifier ))))) ;) (if_statement "if (local_bd != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }" if (parenthesized_expression "(local_bd != '\0')" ( (binary_expression "local_bd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));\n          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }\n          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;\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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));\n          src_id.second = 0;\n          uVar6 = *(uint *)prelocs;\n          puVar5 = (local_cc->\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                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);\n          if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));\n          _Var26._M_p = (pointer)extraout_EDX_01;\n        }" { (if_statement "if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }" if (parenthesized_expression "(bVar27 == 0)" ( (binary_expression "bVar27 == 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_b0;\n            src_id.second = (uint)local_a4;\n          }" else (compound_statement "{\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a4;\n          }" { (expression_statement "src_id.first = (Relobj *)local_b0;" (assignment_expression "src_id.first = (Relobj *)local_b0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_b0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = (uint)local_a4;" (assignment_expression "src_id.second = (uint)local_a4" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)local_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "*(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;" (assignment_expression "*(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id" (pointer_expression "*(Icf **)((int)ppaVar31 + -0xc)" * (cast_expression "(Icf **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;" (assignment_expression "*(mapped_type **)((int)ppaVar31 + -0x10) = local_bc" (pointer_expression "*(mapped_type **)((int)ppaVar31 + -0x10)" * (cast_expression "(mapped_type **)((int)ppaVar31 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = (Icf *)&src_id;" (assignment_expression "local_a0 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) 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) : :) (expression_statement "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc))" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)" ( (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **" (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 "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc)" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> **)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> **" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;" (assignment_expression "ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish" identifier = (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish" (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl" (parenthesized_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "local_c8->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_c8->super__Vector_base<gold::Symbol*" (binary_expression "local_c8->super__Vector_base<gold" (field_expression "local_c8->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }\n          else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }" if (parenthesized_expression "(ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage)" ( (binary_expression "ppSVar25 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage" identifier == (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage" (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_c8->super__Vector_base<gold" (field_expression "local_c8->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            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;\n            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;\n            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));\n          }" { (expression_statement "*(Section_id **)((int)ppaVar31 + -8) = &src_id_1;" (assignment_expression "*(Section_id **)((int)ppaVar31 + -8) = &src_id_1" (pointer_expression "*(Section_id **)((int)ppaVar31 + -8)" * (cast_expression "(Section_id **)((int)ppaVar31 + -8)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&src_id_1" & identifier)) ;) (expression_statement "*(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;" (assignment_expression "*(pointer *)((int)ppaVar31 + -0xc) = ppSVar25" (pointer_expression "*(pointer *)((int)ppaVar31 + -0xc)" * (cast_expression "(pointer *)((int)ppaVar31 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;" (assignment_expression "*(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8" (pointer_expression "*(Symbol_info **)((int)ppaVar31 + -0x10)" * (cast_expression "(Symbol_info **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) 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*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8));" (binary_expression "Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8))" (binary_expression "Symbol*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)" ( (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **" (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 "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),\n                       *(Symbol ***)((int)ppaVar31 + -8)" (binary_expression "(iterator)*(Symbol ***)((int)ppaVar31 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(Symbol ***)((int)ppaVar31 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)ppaVar31 + -8)" * (cast_expression "(Symbol ***)((int)ppaVar31 + -8)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;) }) (else_clause "else {\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }" else (compound_statement "{\n            *ppSVar25 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;\n          }" { (expression_statement "*ppSVar25 = (Symbol *)src_id_1.first;" (assignment_expression "*ppSVar25 = (Symbol *)src_id_1.first" (pointer_expression "*ppSVar25" * 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_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1;" (assignment_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar25 + 1" (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish" (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_c8->super__Vector_base<gold" (field_expression "local_c8->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 "ppSVar25 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(Icf **)((int)ppaVar31 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)ppaVar31 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)ppaVar31 + -0xc)" * (cast_expression "(Icf **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;" (assignment_expression "*(Addend_info **)((int)ppaVar31 + -0x10) = local_dc" (pointer_expression "*(Addend_info **)((int)ppaVar31 + -0x10)" * (cast_expression "(Addend_info **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Addend_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.first = local_d8;" (assignment_expression "src_id.first = local_d8" (field_expression "src_id.first" identifier . field_identifier) = 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_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "local_28._M_p = (pointer)((int)local_ac >> 0x1f);" (assignment_expression "local_28._M_p = (pointer)((int)local_ac >> 0x1f)" (field_expression "local_28._M_p" identifier . field_identifier) = (call_expression "(pointer)((int)local_ac >> 0x1f)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)local_ac >> 0x1f)" ( (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));" statement_identifier (ERROR "::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>,_std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "_long_long_int>_>_>\n          ::emplace_back" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));" (comma_expression "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                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc))" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc))" (binary_expression "_long_long_int>_" identifier > identifier) > (parenthesized_expression "(*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc))" ( (comma_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc)" (pointer_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10)" * (call_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)" ( (ERROR "vector<std::pair<long_long_int,_long_long_int>,_std::allocator<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                       **" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_>\n                       **" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc)" * (call_expression "(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc)" (parenthesized_expression "(pair<long_long_int,_long_long_int> **)" ( (comma_expression "pair<long_long_int,_long_long_int> **" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;)) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar6 = *(uint *)prelocs;" (assignment_expression "uVar6 = *(uint *)prelocs" identifier = (pointer_expression "*(uint *)prelocs" * (cast_expression "(uint *)prelocs" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar5 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;" (assignment_expression "puVar5 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" identifier = (field_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" (field_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl" (parenthesized_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )" ( (ERROR "local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n                   super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\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)) ;) (expression_statement "src_id.first = (Relobj *)\n                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18);" (assignment_expression "src_id.first = (Relobj *)\n                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18)" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)\n                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18)" ( (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |\n                         uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }\n          else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }" if (parenthesized_expression "(puVar5 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage)" ( (binary_expression "puVar5 == (local_cc->\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_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" (field_expression "(local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl" (parenthesized_expression "(local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )" ( (ERROR "local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n                        super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\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            *(Icf **)((int)ppaVar31 + -8) = local_a0;\n            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;\n            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;\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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));\n          }" { (expression_statement "*(Icf **)((int)ppaVar31 + -8) = local_a0;" (assignment_expression "*(Icf **)((int)ppaVar31 + -8) = local_a0" (pointer_expression "*(Icf **)((int)ppaVar31 + -8)" * (cast_expression "(Icf **)((int)ppaVar31 + -8)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)ppaVar31 + -0xc) = puVar5;" (assignment_expression "*(pointer *)((int)ppaVar31 + -0xc) = puVar5" (pointer_expression "*(pointer *)((int)ppaVar31 + -0xc)" * (cast_expression "(pointer *)((int)ppaVar31 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;" (assignment_expression "*(Offset_info **)((int)ppaVar31 + -0x10) = local_cc" (pointer_expression "*(Offset_info **)((int)ppaVar31 + -0x10)" * (cast_expression "(Offset_info **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Offset_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) 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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));" 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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8));" (binary_expression "_M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8))" (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                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8))" ( (comma_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8)" (pointer_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppaVar31 + -0x10)" * (call_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)" ( (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) : :) (binary_expression "allocator<long_long_unsigned_int>_> **" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),\n                       *(ulonglong **)((int)ppaVar31 + -8)" (binary_expression "(iterator)*(ulonglong **)((int)ppaVar31 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(ulonglong **)((int)ppaVar31 + -0xc)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(ulonglong **)((int)ppaVar31 + -8)" * (cast_expression "(ulonglong **)((int)ppaVar31 + -8)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -8)" ( (binary_expression "(int)ppaVar31 + -8" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;)) }) (else_clause "else {\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }" else (compound_statement "{\n            *(Relobj **)puVar5 = src_id.first;\n            *(uint *)((int)puVar5 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;\n          }" { (expression_statement "*(Relobj **)puVar5 = src_id.first;" (assignment_expression "*(Relobj **)puVar5 = src_id.first" (pointer_expression "*(Relobj **)puVar5" * (cast_expression "(Relobj **)puVar5" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(uint *)((int)puVar5 + 4) = 0;" (assignment_expression "*(uint *)((int)puVar5 + 4) = 0" (pointer_expression "*(uint *)((int)puVar5 + 4)" * (cast_expression "(uint *)((int)puVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 4)" ( (binary_expression "(int)puVar5 + 4" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1;" (assignment_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar5 + 1" (field_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>)" ( (ERROR "local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n            super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n            super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\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 "puVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "dst_id.first = (Relobj *)0x0;" (assignment_expression "dst_id.first = (Relobj *)0x0" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;" (assignment_expression "*(Section_id **)((int)ppaVar31 + -0xc) = &dst_id" (pointer_expression "*(Section_id **)((int)ppaVar31 + -0xc)" * (cast_expression "(Section_id **)((int)ppaVar31 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&dst_id" & identifier)) ;) (expression_statement "*(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;" (assignment_expression "*(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0" (pointer_expression "*(Reloc_addend_size_info **)((int)ppaVar31 + -0x10)" * (cast_expression "(Reloc_addend_size_info **)((int)ppaVar31 + -0x10)" ( (type_descriptor "Reloc_addend_size_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));" statement_identifier (ERROR "::vector<unsigned_int,_std::allocator<unsigned_int>_>:" : : (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));" (binary_expression "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc))" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc))" ( (comma_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc)" (pointer_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10)" * (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppaVar31 + -0x10)" (parenthesized_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)" ( (ERROR "vector<unsigned_int,_std::" (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_> **" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint **)((int)ppaVar31 + -0xc)" * (cast_expression "(uint **)((int)ppaVar31 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0xc)" ( (binary_expression "(int)ppaVar31 + -0xc" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;)) (expression_statement "_Var26._M_p = (pointer)extraout_EDX_01;" (assignment_expression "_Var26._M_p = (pointer)extraout_EDX_01" (field_expression "_Var26._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_01" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) })) (expression_statement "puVar30 = ppaVar31;" (assignment_expression "puVar30 = ppaVar31" identifier = identifier) ;) (if_statement "if (bVar27 != 0) goto LAB_0021e8f0;" if (parenthesized_expression "(bVar27 != 0)" ( (binary_expression "bVar27 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0021e8f0;" goto statement_identifier ;)) }) (ERROR "LAB_0021e5a5:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4" identifier : identifier = identifier + number_literal ; identifier = identifier + number_literal ; } while ( identifier != identifier) )) )))) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != local_ec) {\n    *(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e6ba;\n    operator_delete(*(void **)((int)ppaVar31 + -0x10));\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != local_ec)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != local_ec)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != local_ec" (binary_expression "allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)src_section_name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n    *(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e6ba;\n    operator_delete(*(void **)((int)ppaVar31 + -0x10));\n  }" { (expression_statement "*(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)ppaVar31 + -0x10)" * (cast_expression "(pointer *)((int)ppaVar31 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (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)ppaVar31 + -0x14) = 0x21e6ba;" (assignment_expression "*(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e6ba" (pointer_expression "*(undefined4 *)((int)ppaVar31 + -0x14)" * (cast_expression "(undefined4 *)((int)ppaVar31 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppaVar31 + -0x14)" ( (binary_expression "(int)ppaVar31 + -0x14" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppaVar31 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppaVar31 + -0x10))" identifier (argument_list "(*(void **)((int)ppaVar31 + -0x10))" ( (pointer_expression "*(void **)((int)ppaVar31 + -0x10)" * (cast_expression "(void **)((int)ppaVar31 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppaVar31 + -0x10)" ( (binary_expression "(int)ppaVar31 + -0x10" (cast_expression "(int)ppaVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (return_statement "return;" return ;) }))
(translation_unit "void FUN_0021e380(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,uint param_5,\n                 int param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)\n\n{\n  code cVar1;\n  ushort uVar2;\n  undefined4 *puVar3;\n  byte *pbVar4;\n  int iVar5;\n  int *piVar6;\n  size_t sVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  code *extraout_EDX_06;\n  code *extraout_EDX_07;\n  byte bVar14;\n  uint uVar15;\n  code *pcVar16;\n  undefined1 *puVar17;\n  code **ppcVar18;\n  code *unaff_ESI;\n  int iVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  byte *pbVar22;\n  code *pcVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  ulonglong uVar29;\n  int iStack_f0;\n  code *local_ec;\n  code **local_e8;\n  uint local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  code *local_cc;\n  int local_c8;\n  byte *local_c4;\n  char local_be;\n  char local_bd;\n  int local_bc;\n  int *local_b8;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  undefined **local_a8;\n  code *local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [16];\n  code **local_84;\n  code **local_80;\n  code *local_7c;\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  undefined4 local_60;\n  code *local_5c;\n  uint local_58;\n  code *local_54;\n  undefined4 local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  uint local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  local_a8 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_b8 = &DAT_005ea7c8;\n  iVar19 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar19 = *local_b8;\n  pcVar16 = *(code **)(iVar19 + 8);\n  if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }\n  if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }\n  local_be = '\0';\n  if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }\n  uVar28 = CONCAT44(pcVar16,local_a4);\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }\n  return;\n}\n\n" (function_definition "void FUN_0021e380(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,uint param_5,\n                 int param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)\n\n{\n  code cVar1;\n  ushort uVar2;\n  undefined4 *puVar3;\n  byte *pbVar4;\n  int iVar5;\n  int *piVar6;\n  size_t sVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  code *extraout_EDX_06;\n  code *extraout_EDX_07;\n  byte bVar14;\n  uint uVar15;\n  code *pcVar16;\n  undefined1 *puVar17;\n  code **ppcVar18;\n  code *unaff_ESI;\n  int iVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  byte *pbVar22;\n  code *pcVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  ulonglong uVar29;\n  int iStack_f0;\n  code *local_ec;\n  code **local_e8;\n  uint local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  code *local_cc;\n  int local_c8;\n  byte *local_c4;\n  char local_be;\n  char local_bd;\n  int local_bc;\n  int *local_b8;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  undefined **local_a8;\n  code *local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [16];\n  code **local_84;\n  code **local_80;\n  code *local_7c;\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  undefined4 local_60;\n  code *local_5c;\n  uint local_58;\n  code *local_54;\n  undefined4 local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  uint local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  local_a8 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_b8 = &DAT_005ea7c8;\n  iVar19 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar19 = *local_b8;\n  pcVar16 = *(code **)(iVar19 + 8);\n  if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }\n  if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }\n  local_be = '\0';\n  if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }\n  uVar28 = CONCAT44(pcVar16,local_a4);\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0021e380(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,uint param_5,\n                 int 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,code *param_4,uint param_5,\n                 int 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 "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type 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  code cVar1;\n  ushort uVar2;\n  undefined4 *puVar3;\n  byte *pbVar4;\n  int iVar5;\n  int *piVar6;\n  size_t sVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  code *extraout_EDX_06;\n  code *extraout_EDX_07;\n  byte bVar14;\n  uint uVar15;\n  code *pcVar16;\n  undefined1 *puVar17;\n  code **ppcVar18;\n  code *unaff_ESI;\n  int iVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  byte *pbVar22;\n  code *pcVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  ulonglong uVar29;\n  int iStack_f0;\n  code *local_ec;\n  code **local_e8;\n  uint local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  code *local_cc;\n  int local_c8;\n  byte *local_c4;\n  char local_be;\n  char local_bd;\n  int local_bc;\n  int *local_b8;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  undefined **local_a8;\n  code *local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [16];\n  code **local_84;\n  code **local_80;\n  code *local_7c;\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  undefined4 local_60;\n  code *local_5c;\n  uint local_58;\n  code *local_54;\n  undefined4 local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  uint local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  local_a8 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_b8 = &DAT_005ea7c8;\n  iVar19 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar19 = *local_b8;\n  pcVar16 = *(code **)(iVar19 + 8);\n  if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }\n  if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }\n  local_be = '\0';\n  if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }\n  uVar28 = CONCAT44(pcVar16,local_a4);\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }\n  return;\n}" { (declaration "code cVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "undefined4 extraout_EDX_01;" type_identifier identifier ;) (declaration "undefined **extraout_EDX_02;" type_identifier (pointer_declarator "**extraout_EDX_02" * (pointer_declarator "*extraout_EDX_02" * identifier)) ;) (declaration "int extraout_EDX_03;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX_04;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_05;" type_identifier identifier ;) (declaration "code *extraout_EDX_06;" type_identifier (pointer_declarator "*extraout_EDX_06" * identifier) ;) (declaration "code *extraout_EDX_07;" type_identifier (pointer_declarator "*extraout_EDX_07" * identifier) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code **ppcVar18;" type_identifier (pointer_declarator "**ppcVar18" * (pointer_declarator "*ppcVar18" * identifier)) ;) (declaration "code *unaff_ESI;" type_identifier (pointer_declarator "*unaff_ESI" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "undefined8 uVar28;" type_identifier identifier ;) (declaration "ulonglong uVar29;" type_identifier identifier ;) (declaration "int iStack_f0;" primitive_type identifier ;) (declaration "code *local_ec;" type_identifier (pointer_declarator "*local_ec" * identifier) ;) (declaration "code **local_e8;" type_identifier (pointer_declarator "**local_e8" * (pointer_declarator "*local_e8" * identifier)) ;) (declaration "uint local_e4;" type_identifier identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "code *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "code *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "undefined1 *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "code *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "char local_be;" primitive_type identifier ;) (declaration "char local_bd;" primitive_type identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int *local_b8;" primitive_type (pointer_declarator "*local_b8" * identifier) ;) (declaration "code *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "code *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "uint local_ac;" type_identifier identifier ;) (declaration "undefined **local_a8;" type_identifier (pointer_declarator "**local_a8" * (pointer_declarator "*local_a8" * identifier)) ;) (declaration "code *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "code **local_a0;" type_identifier (pointer_declarator "**local_a0" * (pointer_declarator "*local_a0" * identifier)) ;) (declaration "code *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "undefined1 local_94 [16];" type_identifier (array_declarator "local_94 [16]" identifier [ number_literal ]) ;) (declaration "code **local_84;" type_identifier (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier)) ;) (declaration "code **local_80;" type_identifier (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier)) ;) (declaration "code *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "code *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "code **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "code **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "code *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "code *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "code *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "code *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "code *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 "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = &__DT_PLTGOT;" (assignment_expression "local_a8 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (param_6 == 9) {\n    return;\n  }" if (parenthesized_expression "(param_6 == 9)" ( (binary_expression "param_6 == 9" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "local_b8 = &DAT_005ea7c8;" (assignment_expression "local_b8 = &DAT_005ea7c8" identifier = (pointer_expression "&DAT_005ea7c8" & identifier)) ;) (expression_statement "iVar19 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar19 = *(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 (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n    iStack_f0 = iVar19;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "iStack_f0 = iVar19;" (assignment_expression "iStack_f0 = iVar19" 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 *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }" if (parenthesized_expression "(*(int *)(iVar19 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar19 + 0x5934) == 0" (pointer_expression "*(int *)(iVar19 + 0x5934)" * (cast_expression "(int *)(iVar19 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x5934)" ( (binary_expression "iVar19 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }" { (expression_statement "local_ec = (code *)local_44;" (assignment_expression "local_ec = (code *)local_44" identifier = (cast_expression "(code *)local_44" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_f0 = 0;" (assignment_expression "iStack_f0 = 0" identifier = number_literal) ;) (expression_statement "local_4c[0] = local_ec;" (assignment_expression "local_4c[0] = local_ec" (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 "ppcVar18 = &local_ec;" (assignment_expression "ppcVar18 = &local_ec" identifier = (pointer_expression "&local_ec" & identifier)) ;) }) (else_clause "else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }" else (compound_statement "{\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }" { (expression_statement "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*(uint *)param_4 + 0x40))" ( (pointer_expression "**(code **)(*(uint *)param_4 + 0x40)" * (pointer_expression "*(code **)(*(uint *)param_4 + 0x40)" * (cast_expression "(code **)(*(uint *)param_4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(uint *)param_4 + 0x40)" ( (binary_expression "*(uint *)param_4 + 0x40" (pointer_expression "*(uint *)param_4" * (cast_expression "(uint *)param_4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(local_4c,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_ec = (code *)local_44;" (assignment_expression "local_ec = (code *)local_44" identifier = (cast_expression "(code *)local_44" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppcVar18 = (code **)&iStack_f0;" (assignment_expression "ppcVar18 = (code **)&iStack_f0" identifier = (cast_expression "(code **)&iStack_f0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&iStack_f0" & identifier))) ;) }))) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "pcVar16 = *(code **)(iVar19 + 8);" (assignment_expression "pcVar16 = *(code **)(iVar19 + 8)" identifier = (pointer_expression "*(code **)(iVar19 + 8)" * (cast_expression "(code **)(iVar19 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(pcVar16 == (code *)0x0)" ( (binary_expression "pcVar16 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }" { (expression_statement "*(int *)((int)ppcVar18 + -4) = iVar19;" (assignment_expression "*(int *)((int)ppcVar18 + -4) = iVar19" (pointer_expression "*(int *)((int)ppcVar18 + -4)" * (cast_expression "(int *)((int)ppcVar18 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }" if (parenthesized_expression "(*(uint *)(pcVar16 + 0x5934) == 0)" ( (binary_expression "*(uint *)(pcVar16 + 0x5934) == 0" (pointer_expression "*(uint *)(pcVar16 + 0x5934)" * (cast_expression "(uint *)(pcVar16 + 0x5934)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x5934)" ( (binary_expression "pcVar16 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }" { (labeled_statement "LAB_0021e40f:\n    local_bd = '\0';" statement_identifier : (expression_statement "local_bd = '\0';" (assignment_expression "local_bd = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_dc = (code *)0x0;" (assignment_expression "local_dc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }" else (compound_statement "{\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }" { (expression_statement "local_a4 = (code *)&local_2c;" (assignment_expression "local_a4 = (code *)&local_2c" identifier = (cast_expression "(code *)&local_2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "local_34 = local_a4;" (assignment_expression "local_34 = local_a4" identifier = identifier) ;) (expression_statement "pcVar16 = (code *)0xffffffff;" (assignment_expression "pcVar16 = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }" if (parenthesized_expression "(local_4c[0] != (code *)0x0)" ( (binary_expression "local_4c[0] != (code *)0x0" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }" { (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));" (assignment_expression "sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)ppcVar18 + -0x10))" identifier (argument_list "(*(char **)((int)ppcVar18 + -0x10))" ( (pointer_expression "*(char **)((int)ppcVar18 + -0x10)" * (cast_expression "(char **)((int)ppcVar18 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar16 = pcVar21 + sVar7;" (assignment_expression "pcVar16 = pcVar21 + sVar7" identifier = (binary_expression "pcVar21 + sVar7" identifier + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)ppcVar18 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -4)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(code **)((int)ppcVar18 + -8) = pcVar16;" (assignment_expression "*(code **)((int)ppcVar18 + -8) = pcVar16" (pointer_expression "*(code **)((int)ppcVar18 + -8)" * (cast_expression "(code **)((int)ppcVar18 + -8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code **)((int)ppcVar18 + -0xc) = pcVar21;" (assignment_expression "*(code **)((int)ppcVar18 + -0xc) = pcVar21" (pointer_expression "*(code **)((int)ppcVar18 + -0xc)" * (cast_expression "(code **)((int)ppcVar18 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0x10) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x10) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0x10)" * (cast_expression "(code ***)((int)ppcVar18 + -0x10)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar19 = 5;" (assignment_expression "iVar19 = 5" identifier = number_literal) ;) (expression_statement "bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);" (assignment_expression "bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)ppcVar18 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar26 = ppcVar18 == (code **)0x0;" (assignment_expression "bVar26 = ppcVar18 == (code **)0x0" identifier = (binary_expression "ppcVar18 == (code **)0x0" identifier == (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "ppuVar13 = local_a8 + -0x67293;" (assignment_expression "ppuVar13 = local_a8 + -0x67293" identifier = (binary_expression "local_a8 + -0x67293" identifier + number_literal)) ;) (expression_statement "pcVar16 = local_34;" (assignment_expression "pcVar16 = local_34" identifier = identifier) ;) (do_statement "do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);" do (compound_statement "{\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;" (assignment_expression "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar16" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar16" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar26 = *(code *)ppuVar13 == *pcVar16;" (assignment_expression "bVar26 = *(code *)ppuVar13 == *pcVar16" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar16" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar16" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar16 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar16 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }" { (expression_statement "iVar19 = 0xf;" (assignment_expression "iVar19 = 0xf" identifier = number_literal) ;) (expression_statement "pcVar16 = (code *)((int)local_a8 + -0x19ca46);" (assignment_expression "pcVar16 = (code *)((int)local_a8 + -0x19ca46)" identifier = (cast_expression "(code *)((int)local_a8 + -0x19ca46)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19ca46)" ( (binary_expression "(int)local_a8 + -0x19ca46" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar21 = local_34;" (assignment_expression "pcVar21 = local_34" identifier = identifier) ;) (do_statement "do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);" do (compound_statement "{\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      }" { (expression_statement "unaff_ESI = pcVar16;" (assignment_expression "unaff_ESI = pcVar16" identifier = identifier) ;) (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;" (assignment_expression "unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar16 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar16 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar16 < (byte)*pcVar21;" (assignment_expression "bVar25 = (byte)*pcVar16 < (byte)*pcVar21" identifier = (binary_expression "(byte)*pcVar16 < (byte)*pcVar21" (binary_expression "(byte)*pcVar16" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *pcVar16 == *pcVar21;" (assignment_expression "bVar24 = *pcVar16 == *pcVar21" identifier = (binary_expression "*pcVar16 == *pcVar21" (pointer_expression "*pcVar16" * identifier) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "pcVar16 = unaff_ESI;" (assignment_expression "pcVar16 = unaff_ESI" identifier = identifier) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }" if (parenthesized_expression "((!bVar25 && !bVar24) != bVar25)" ( (binary_expression "(!bVar25 && !bVar24) != bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }" { (if_statement "if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }" if (parenthesized_expression "(local_34 == local_a4)" ( (binary_expression "local_34 == local_a4" identifier == identifier) )) (compound_statement "{\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }" { (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "pcVar16 = local_34;" (assignment_expression "pcVar16 = local_34" identifier = identifier) ;) }) (else_clause "else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }" else (compound_statement "{\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }" { (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_34;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_34" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "pcVar16 = extraout_EDX_07;" (assignment_expression "pcVar16 = extraout_EDX_07" identifier = identifier) ;) }))) (goto_statement "goto LAB_0021e40f;" goto statement_identifier ;) })) })) (if_statement "if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_34 != local_a4)" ( (binary_expression "local_34 != local_a4" identifier != identifier) )) (compound_statement "{\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }" { (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_34;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_34" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (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_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" 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 "*(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15" (pointer_expression "*(code ***)((int)ppcVar18 + -0x10)" * (cast_expression "(code ***)((int)ppcVar18 + -0x10)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a0 + 0x15" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_bc = FUN_00074520();" (assignment_expression "local_bc = FUN_00074520()" identifier = (call_expression "FUN_00074520()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_c8 = local_bc + 0xc;" (assignment_expression "local_c8 = local_bc + 0xc" identifier = (binary_expression "local_bc + 0xc" identifier + number_literal)) ;) (expression_statement "unaff_ESI = (code *)(local_bc + 0x18);" (assignment_expression "unaff_ESI = (code *)(local_bc + 0x18)" identifier = (cast_expression "(code *)(local_bc + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0x18)" ( (binary_expression "local_bc + 0x18" identifier + number_literal) )))) ;) (expression_statement "pcVar16 = (code *)(local_bc + 0x24);" (assignment_expression "pcVar16 = (code *)(local_bc + 0x24)" identifier = (cast_expression "(code *)(local_bc + 0x24)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0x24)" ( (binary_expression "local_bc + 0x24" identifier + number_literal) )))) ;) (expression_statement "local_e0 = local_bc + 0x30;" (assignment_expression "local_e0 = local_bc + 0x30" identifier = (binary_expression "local_bc + 0x30" identifier + number_literal)) ;) (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" identifier = (pointer_expression "*local_b8" * identifier)) ;) (expression_statement "local_bd = '\x01';" (assignment_expression "local_bd = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_dc = unaff_ESI;" (assignment_expression "local_dc = unaff_ESI" identifier = identifier) ;) (expression_statement "local_cc = pcVar16;" (assignment_expression "local_cc = pcVar16" identifier = identifier) ;) }))) (if_statement "if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar19 + 8) == 0)" ( (binary_expression "*(int *)(iVar19 + 8) == 0" (pointer_expression "*(int *)(iVar19 + 8)" * (cast_expression "(int *)(iVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }" { (expression_statement "*(code **)((int)ppcVar18 + -4) = unaff_ESI;" (assignment_expression "*(code **)((int)ppcVar18 + -4) = unaff_ESI" (pointer_expression "*(code **)((int)ppcVar18 + -4)" * (cast_expression "(code **)((int)ppcVar18 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_be = '\0';" (assignment_expression "local_be = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2)" ( (binary_expression "*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar19 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar19 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar19 + 8) + 0x5934" (pointer_expression "*(int *)(iVar19 + 8)" * (cast_expression "(int *)(iVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x10) = param_1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x10)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_be = FUN_0020d670();" (assignment_expression "local_be = FUN_0020d670()" identifier = (call_expression "FUN_0020d670()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = local_be == '\0';" (assignment_expression "bVar26 = local_be == '\0'" identifier = (binary_expression "local_be == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "pcVar16 = extraout_EDX_06;" (assignment_expression "pcVar16 = extraout_EDX_06" identifier = identifier) ;) (if_statement "if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "local_be = '\0';" (assignment_expression "local_be = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppuVar13 = local_a8 + -0x66894;" (assignment_expression "ppuVar13 = local_a8 + -0x66894" identifier = (binary_expression "local_a8 + -0x66894" identifier + number_literal)) ;) (expression_statement "pcVar16 = local_4c[0];" (assignment_expression "pcVar16 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;" (assignment_expression "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar16" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar16" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar26 = *(code *)ppuVar13 == *pcVar16;" (assignment_expression "bVar26 = *(code *)ppuVar13 == *pcVar16" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar16" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar16" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar16 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar16 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (expression_statement "pcVar16 = local_4c[0];" (assignment_expression "pcVar16 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (if_statement "if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }" { (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" identifier = number_literal) ;) (expression_statement "pcVar21 = (code *)((int)local_a8 + -0x19a243);" (assignment_expression "pcVar21 = (code *)((int)local_a8 + -0x19a243)" identifier = (cast_expression "(code *)((int)local_a8 + -0x19a243)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19a243)" ( (binary_expression "(int)local_a8 + -0x19a243" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar23 = local_4c[0];" (assignment_expression "pcVar23 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar21 < (byte)*pcVar23;" (assignment_expression "bVar25 = (byte)*pcVar21 < (byte)*pcVar23" identifier = (binary_expression "(byte)*pcVar21 < (byte)*pcVar23" (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar23" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *pcVar21 == *pcVar23;" (assignment_expression "bVar24 = *pcVar21 == *pcVar23" identifier = (binary_expression "*pcVar21 == *pcVar23" (pointer_expression "*pcVar21" * identifier) == (pointer_expression "*pcVar23" * identifier))) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar23 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar23 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }" { (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "pcVar21 = (code *)((int)local_a8 + -0x19a231);" (assignment_expression "pcVar21 = (code *)((int)local_a8 + -0x19a231)" identifier = (cast_expression "(code *)((int)local_a8 + -0x19a231)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19a231)" ( (binary_expression "(int)local_a8 + -0x19a231" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar23 = local_4c[0];" (assignment_expression "pcVar23 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = (byte)*pcVar21 < (byte)*pcVar23;" (assignment_expression "bVar26 = (byte)*pcVar21 < (byte)*pcVar23" identifier = (binary_expression "(byte)*pcVar21 < (byte)*pcVar23" (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar23" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *pcVar21 == *pcVar23;" (assignment_expression "bVar24 = *pcVar21 == *pcVar23" identifier = (binary_expression "*pcVar21 == *pcVar23" (pointer_expression "*pcVar21" * identifier) == (pointer_expression "*pcVar23" * identifier))) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar23 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar23 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar26 && !bVar24) == bVar26;" (assignment_expression "bVar24 = (!bVar26 && !bVar24) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar24) == bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" ( (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }" { (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" identifier = number_literal) ;) (expression_statement "ppuVar13 = local_a8 + -0x66889;" (assignment_expression "ppuVar13 = local_a8 + -0x66889" identifier = (binary_expression "local_a8 + -0x66889" identifier + number_literal)) ;) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);" do (compound_statement "{\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;" (assignment_expression "bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar21" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *(code *)ppuVar13 == *pcVar21;" (assignment_expression "bVar24 = *(code *)ppuVar13 == *pcVar21" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar21" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }" { (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" identifier = number_literal) ;) (expression_statement "pcVar21 = (code *)((int)local_a8 + -0x19a212);" (assignment_expression "pcVar21 = (code *)((int)local_a8 + -0x19a212)" identifier = (cast_expression "(code *)((int)local_a8 + -0x19a212)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19a212)" ( (binary_expression "(int)local_a8 + -0x19a212" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar23 = local_4c[0];" (assignment_expression "pcVar23 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);" do (compound_statement "{\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = (byte)*pcVar21 < (byte)*pcVar23;" (assignment_expression "bVar26 = (byte)*pcVar21 < (byte)*pcVar23" identifier = (binary_expression "(byte)*pcVar21 < (byte)*pcVar23" (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar23" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *pcVar21 == *pcVar23;" (assignment_expression "bVar24 = *pcVar21 == *pcVar23" identifier = (binary_expression "*pcVar21 == *pcVar23" (pointer_expression "*pcVar21" * identifier) == (pointer_expression "*pcVar23" * identifier))) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pcVar23 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar23 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "local_be = (!bVar26 && !bVar24) != bVar26;" (assignment_expression "local_be = (!bVar26 && !bVar24) != bVar26" identifier = (binary_expression "(!bVar26 && !bVar24) != bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" ( (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier)) ;) })) })) })) })) })) })) (expression_statement "uVar28 = CONCAT44(pcVar16,local_a4);" (assignment_expression "uVar28 = CONCAT44(pcVar16,local_a4)" identifier = (call_expression "CONCAT44(pcVar16,local_a4)" identifier (argument_list "(pcVar16,local_a4)" ( identifier , identifier )))) ;) (if_statement "if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" { (expression_statement "local_c4 = (byte *)0x0;" (assignment_expression "local_c4 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = local_94;" (assignment_expression "local_d0 = local_94" identifier = identifier) ;) (expression_statement "local_e8 = &local_78;" (assignment_expression "local_e8 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);" do (compound_statement "{\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    }" { (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar8 = param_7[1];" (assignment_expression "uVar8 = param_7[1]" identifier = (subscript_expression "param_7[1]" identifier [ number_literal ])) ;) (expression_statement "local_e4 = uVar8 >> 0x18;" (assignment_expression "local_e4 = uVar8 >> 0x18" identifier = (binary_expression "uVar8 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;" (assignment_expression "uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8" identifier = (binary_expression "((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8" (parenthesized_expression "((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18)" ( (binary_expression "(uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "(uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal)) )) >> number_literal)) ;) (expression_statement "uVar8 = param_7[2];" (assignment_expression "uVar8 = param_7[2]" identifier = (subscript_expression "param_7[2]" identifier [ number_literal ])) ;) (expression_statement "local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" identifier = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }" if (parenthesized_expression "(uVar15 < param_11)" ( (binary_expression "uVar15 < param_11" identifier < identifier) )) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(param_12 == 0)" ( (binary_expression "param_12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x596da" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x19ca36" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar19 = uVar15 * 0x10 + param_12;" (assignment_expression "iVar19 = uVar15 * 0x10 + param_12" identifier = (binary_expression "uVar15 * 0x10 + param_12" (binary_expression "uVar15 * 0x10" identifier * number_literal) + identifier)) ;) (expression_statement "local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);" (assignment_expression "local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" identifier = (cast_expression "(code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" ( (binary_expression "*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8" (binary_expression "*(ushort *)(iVar19 + 0xe) << 8" (pointer_expression "*(ushort *)(iVar19 + 0xe)" * (cast_expression "(ushort *)(iVar19 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xe)" ( (binary_expression "iVar19 + 0xe" identifier + number_literal) )))) << number_literal) | (binary_expression "*(ushort *)(iVar19 + 0xe) >> 8" (pointer_expression "*(ushort *)(iVar19 + 0xe)" * (cast_expression "(ushort *)(iVar19 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xe)" ( (binary_expression "iVar19 + 0xe" identifier + number_literal) )))) >> number_literal)) ))))) ;) (expression_statement "uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);" (assignment_expression "uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4)" identifier = (call_expression "CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4)" identifier (argument_list "((int)((ulonglong)uVar28 >> 0x20),local_a4)" ( (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (if_statement "if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }" if (parenthesized_expression "(local_a4 < 0xff00)" ( (binary_expression "local_a4 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }" { (labeled_statement "LAB_0021e61b:\n          local_a4 = (code *)uVar28;" statement_identifier : (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "uVar8 = *(uint *)(iVar19 + 4);" (assignment_expression "uVar8 = *(uint *)(iVar19 + 4)" identifier = (pointer_expression "*(uint *)(iVar19 + 4)" * (cast_expression "(uint *)(iVar19 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 4)" ( (binary_expression "iVar19 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);" (assignment_expression "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" identifier = (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" ( (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "local_b4 = pcVar16 + local_ac;" (assignment_expression "local_b4 = pcVar16 + local_ac" identifier = (binary_expression "pcVar16 + local_ac" identifier + identifier)) ;) (if_statement "if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }" if (parenthesized_expression "(local_bd != '\0')" ( (binary_expression "local_bd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }" { (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = (uint)local_a4;" (assignment_expression "local_30 = (uint)local_a4" identifier = (cast_expression "(uint)local_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_bc;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_bc" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (if_statement "if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;" if (parenthesized_expression "((*(byte *)(iVar19 + 0xc) & 0xf) != 3)" ( (binary_expression "(*(byte *)(iVar19 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(iVar19 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar19 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar19 + 0xc)" * (cast_expression "(byte *)(iVar19 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0021e505;" goto statement_identifier ;)) (labeled_statement "LAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_c8" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (code *)0xffffffff;" (assignment_expression "local_34 = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0021e520;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }" else (compound_statement "{\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }" { (if_statement "if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }" if (parenthesized_expression "(local_a4 == (code *)0xffff)" ( (binary_expression "local_a4 == (code *)0xffff" identifier == (cast_expression "(code *)0xffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }" { (expression_statement "uVar8 = *(uint *)(param_4 + 0x30);" (assignment_expression "uVar8 = *(uint *)(param_4 + 0x30)" identifier = (pointer_expression "*(uint *)(param_4 + 0x30)" * (cast_expression "(uint *)(param_4 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }" { (expression_statement "uVar8 = *(uint *)param_4;" (assignment_expression "uVar8 = *(uint *)param_4" identifier = (pointer_expression "*(uint *)param_4" * (cast_expression "(uint *)param_4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = param_4;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = param_4" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar16 = *(code **)(uVar8 + 0x6c);" (assignment_expression "pcVar16 = *(code **)(uVar8 + 0x6c)" identifier = (pointer_expression "*(code **)(uVar8 + 0x6c)" * (cast_expression "(code **)(uVar8 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + 0x6c)" ( (binary_expression "uVar8 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = (*pcVar16)();" (assignment_expression "uVar8 = (*pcVar16)()" identifier = (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(param_4 + 0x30) = uVar8;" (assignment_expression "*(uint *)(param_4 + 0x30) = uVar8" (pointer_expression "*(uint *)(param_4 + 0x30)" * (cast_expression "(uint *)(param_4 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(uint *)((int)ppcVar18 + -8) = uVar15;" (assignment_expression "*(uint *)((int)ppcVar18 + -8) = uVar15" (pointer_expression "*(uint *)((int)ppcVar18 + -8)" * (cast_expression "(uint *)((int)ppcVar18 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)ppcVar18 + -0xc) = param_4;" (assignment_expression "*(code **)((int)ppcVar18 + -0xc) = param_4" (pointer_expression "*(code **)((int)ppcVar18 + -0xc)" * (cast_expression "(code **)((int)ppcVar18 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)ppcVar18 + -0x10) = uVar8;" (assignment_expression "*(uint *)((int)ppcVar18 + -0x10) = uVar8" (pointer_expression "*(uint *)((int)ppcVar18 + -0x10)" * (cast_expression "(uint *)((int)ppcVar18 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar28 = FUN_0028b7d0();" (assignment_expression "uVar28 = FUN_0028b7d0()" identifier = (call_expression "FUN_0028b7d0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0021e61b;" goto statement_identifier ;) })) (expression_statement "uVar8 = *(uint *)(iVar19 + 4);" (assignment_expression "uVar8 = *(uint *)(iVar19 + 4)" identifier = (pointer_expression "*(uint *)(iVar19 + 4)" * (cast_expression "(uint *)(iVar19 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 4)" ( (binary_expression "iVar19 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);" (assignment_expression "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" identifier = (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" ( (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "local_b4 = pcVar16 + local_ac;" (assignment_expression "local_b4 = pcVar16 + local_ac" identifier = (binary_expression "pcVar16 + local_ac" identifier + identifier)) ;) (if_statement "if (local_bd == '\0') goto LAB_0021e5a5;" if (parenthesized_expression "(local_bd == '\0')" ( (binary_expression "local_bd == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0021e5a5;" goto statement_identifier ;)) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_bc;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_bc" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (if_statement "if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;" if (parenthesized_expression "((*(byte *)(iVar19 + 0xc) & 0xf) == 3)" ( (binary_expression "(*(byte *)(iVar19 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(iVar19 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar19 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar19 + 0xc)" * (cast_expression "(byte *)(iVar19 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0021e679;" goto statement_identifier ;)) (labeled_statement "LAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_c8" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_dc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" identifier = (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = pcVar16;" (assignment_expression "local_34 = pcVar16" identifier = identifier) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = *param_7;" (assignment_expression "uVar8 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "puVar3 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_cc + 4)" identifier = (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);" (assignment_expression "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" identifier = (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" ( (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" if (parenthesized_expression "(puVar3 == *(undefined4 **)(local_cc + 8))" ( (binary_expression "puVar3 == *(undefined4 **)(local_cc + 8)" identifier == (pointer_expression "*(undefined4 **)(local_cc + 8)" * (cast_expression "(undefined4 **)(local_cc + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 8)" ( (binary_expression "local_cc + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }" { (expression_statement "*(code ***)((int)ppcVar18 + -8) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -8) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -8)" * (cast_expression "(code ***)((int)ppcVar18 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;" (assignment_expression "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3" (pointer_expression "*(undefined4 **)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 **)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_cc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_cc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" else (compound_statement "{\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" { (expression_statement "*puVar3 = local_34;" (assignment_expression "*puVar3 = local_34" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar3 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar3 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) )))) = (binary_expression "puVar3 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_e0" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar28 = CONCAT44(extraout_EDX,local_a4);" (assignment_expression "uVar28 = CONCAT44(extraout_EDX,local_a4)" identifier = (call_expression "CONCAT44(extraout_EDX,local_a4)" identifier (argument_list "(extraout_EDX,local_a4)" ( identifier , identifier )))) ;) (if_statement "if (!bVar24) goto LAB_0021e5a5;" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (goto_statement "goto LAB_0021e5a5;" goto statement_identifier ;)) }))) (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }" if (parenthesized_expression "((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1))" ( (binary_expression "(local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)" (parenthesized_expression "(local_be != '\0')" ( (binary_expression "local_be != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)(iVar19 + 0xc) & 0xf) != 1)" ( (binary_expression "(*(byte *)(iVar19 + 0xc) & 0xf) != 1" (parenthesized_expression "(*(byte *)(iVar19 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar19 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar19 + 0xc)" * (cast_expression "(byte *)(iVar19 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }" { (if_statement "if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(*local_b8 + 8) == 0)" ( (binary_expression "*(int *)(*local_b8 + 8) == 0" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }" { (expression_statement "*(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);" (assignment_expression "*(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20)" (pointer_expression "*(int *)((int)ppcVar18 + -4)" * (cast_expression "(int *)((int)ppcVar18 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_b8 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*local_b8 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }" { (if_statement "if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }" if (parenthesized_expression "(local_e4 - 4 < 0x37)" ( (binary_expression "local_e4 - 4 < 0x37" (binary_expression "local_e4 - 4" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }" { (expression_statement "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();" (call_expression "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))()" (parenthesized_expression "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))" ( (pointer_expression "*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8)" * (cast_expression "(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8[local_e4 - 0x59816] + (int)local_a8)" ( (binary_expression "local_a8[local_e4 - 0x59816] + (int)local_a8" (subscript_expression "local_a8[local_e4 - 0x59816]" identifier [ (binary_expression "local_e4 - 0x59816" identifier - number_literal) ]) + (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }" else (compound_statement "{\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }" { (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" 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 "local_6c = param_4;" (assignment_expression "local_6c = param_4" identifier = identifier) ;) (expression_statement "uVar2 = *(ushort *)(iVar19 + 0xe);" (assignment_expression "uVar2 = *(ushort *)(iVar19 + 0xe)" identifier = (pointer_expression "*(ushort *)(iVar19 + 0xe)" * (cast_expression "(ushort *)(iVar19 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xe)" ( (binary_expression "iVar19 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x10)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);" (assignment_expression "local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8)" identifier = (call_expression "(uint)(ushort)(uVar2 << 8 | uVar2 >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(uVar2 << 8 | uVar2 >> 8)" ( (binary_expression "uVar2 << 8 | uVar2 >> 8" (binary_expression "uVar2 << 8" identifier << number_literal) | (binary_expression "uVar2 >> 8" identifier >> number_literal)) )))) ;) (expression_statement "*(code ****)((int)ppcVar18 + -0x14) = &local_84;" (assignment_expression "*(code ****)((int)ppcVar18 + -0x14) = &local_84" (pointer_expression "*(code ****)((int)ppcVar18 + -0x14)" * (cast_expression "(code ****)((int)ppcVar18 + -0x14)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_84" & identifier)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0x18) = &local_6c;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x18) = &local_6c" (pointer_expression "*(code ***)((int)ppcVar18 + -0x18)" * (cast_expression "(code ***)((int)ppcVar18 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x18)" ( (binary_expression "(int)ppcVar18 + -0x18" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "local_84 = local_a0 + 0xd;" (assignment_expression "local_84 = local_a0 + 0xd" identifier = (binary_expression "local_a0 + 0xd" identifier + number_literal)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0x1c) = local_84;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x1c) = local_84" (pointer_expression "*(code ***)((int)ppcVar18 + -0x1c)" * (cast_expression "(code ***)((int)ppcVar18 + -0x1c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x1c)" ( (binary_expression "(int)ppcVar18 + -0x1c" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)ppcVar18 + -0x20)" * (cast_expression "(undefined1 **)((int)ppcVar18 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x20)" ( (binary_expression "(int)ppcVar18 + -0x20" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x24)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x24)" ( (binary_expression "(int)ppcVar18 + -0x24" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar28 = CONCAT44(extraout_EDX_04,local_a4);" (assignment_expression "uVar28 = CONCAT44(extraout_EDX_04,local_a4)" identifier = (call_expression "CONCAT44(extraout_EDX_04,local_a4)" identifier (argument_list "(extraout_EDX_04,local_a4)" ( identifier , identifier )))) ;) (expression_statement "ppcVar18 = (code **)((int)ppcVar18 + -4);" (assignment_expression "ppcVar18 = (code **)((int)ppcVar18 + -4)" identifier = (cast_expression "(code **)((int)ppcVar18 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })) (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((code *)param_5 != local_a4)" ( (binary_expression "(code *)param_5 != local_a4" (cast_expression "(code *)param_5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_b0 = param_4;" (assignment_expression "local_b0 = param_4" identifier = identifier) ;) (expression_statement "puVar17 = (undefined1 *)ppcVar18;" (assignment_expression "puVar17 = (undefined1 *)ppcVar18" identifier = (cast_expression "(undefined1 *)ppcVar18" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0021e8f0:\n          local_a4 = (code *)uVar28;" statement_identifier : (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(*local_b8 + 8) == 0)" ( (binary_expression "*(int *)(*local_b8 + 8) == 0" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x21f0c2" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppcVar18 = (code **)puVar17;" (assignment_expression "ppcVar18 = (code **)puVar17" identifier = (cast_expression "(code **)puVar17" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*local_b8 + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_b8 + 8) + 0x18b1)" ( (binary_expression "*(int *)(*local_b8 + 8) + 0x18b1" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }" { (expression_statement "local_5c = param_4;" (assignment_expression "local_5c = param_4" identifier = identifier) ;) (expression_statement "iVar19 = *(int *)(param_2 + 0x158) + 0x14;" (assignment_expression "iVar19 = *(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_b0;" (assignment_expression "local_54 = local_b0" identifier = identifier) ;) (expression_statement "local_50 = local_a4;" (assignment_expression "local_50 = local_a4" identifier = identifier) ;) (expression_statement "iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "iVar5 = *(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 "iVar9 = iVar19;" (assignment_expression "iVar9 = iVar19" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }" { (labeled_statement "LAB_0021e980:\n              local_74 = &local_5c;" statement_identifier : (expression_statement "local_74 = &local_5c;" (assignment_expression "local_74 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;)) (expression_statement "*(code ****)(puVar17 + -0x10) = &local_74;" (assignment_expression "*(code ****)(puVar17 + -0x10) = &local_74" (pointer_expression "*(code ****)(puVar17 + -0x10)" * (cast_expression "(code ****)(puVar17 + -0x10)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_74" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x21e99b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x21e99b" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00212060();" (call_expression "FUN_00212060()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }" else (compound_statement "{\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }" { (do_statement "do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);" do (compound_statement "{\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              }" { (while_statement "while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }" while (parenthesized_expression "((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))))" ( (parenthesized_expression "(iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))" ( (comma_expression "iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar5" identifier = identifier) , (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))" ( (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" identifier != (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" 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 "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }" { (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(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_0021e96a;" 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_0021e96a;" goto statement_identifier ;)) })) (expression_statement "piVar6 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar6 = (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 "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar6 != 0)" ( (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" * identifier) != number_literal) )) ;) (labeled_statement "LAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;" statement_identifier : (if_statement "if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;" if (parenthesized_expression "(((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))" ( (binary_expression "((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))))" (parenthesized_expression "((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10)))" ( (binary_expression "(iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar19 == iVar10)" ( (binary_expression "iVar19 == iVar10" identifier == identifier) )) || (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" ( (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" identifier < (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))" ( (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" identifier == (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" 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 "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_0021e980;" goto statement_identifier ;))) }))) (expression_statement "local_78 = (code *)(iVar10 + 0x18);" (assignment_expression "local_78 = (code *)(iVar10 + 0x18)" identifier = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(code ***)(puVar17 + -0x14) = local_e8;" (assignment_expression "*(code ***)(puVar17 + -0x14) = local_e8" (pointer_expression "*(code ***)(puVar17 + -0x14)" * (cast_expression "(code ***)(puVar17 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)(puVar17 + -0x18) = &local_54;" (assignment_expression "*(code ***)(puVar17 + -0x18) = &local_54" (pointer_expression "*(code ***)(puVar17 + -0x18)" * (cast_expression "(code ***)(puVar17 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(code **)(puVar17 + -0x1c) = local_78;" (assignment_expression "*(code **)(puVar17 + -0x1c) = local_78" (pointer_expression "*(code **)(puVar17 + -0x1c)" * (cast_expression "(code **)(puVar17 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" * (cast_expression "(undefined1 **)(puVar17 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x21e9c7" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" * (cast_expression "(undefined4 *)(puVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x24)" ( (binary_expression "puVar17 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(*local_b8 + 0xc);" (assignment_expression "piVar6 = *(int **)(*local_b8 + 0xc)" identifier = (pointer_expression "*(int **)(*local_b8 + 0xc)" * (cast_expression "(int **)(*local_b8 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_b8 + 0xc)" ( (binary_expression "*local_b8 + 0xc" (pointer_expression "*local_b8" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }" { (expression_statement "*(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;" (assignment_expression "*(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664" (pointer_expression "*(undefined ***)(puVar17 + -0xc)" * (cast_expression "(undefined ***)(puVar17 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = (binary_expression "local_a8 + -0x59664" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x14)" * (cast_expression "(int *)(puVar17 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21f101;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21f101" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" * (cast_expression "(undefined4 *)(puVar17 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppuVar13 = *(undefined ***)(*piVar6 + 0x104);" (assignment_expression "ppuVar13 = *(undefined ***)(*piVar6 + 0x104)" identifier = (pointer_expression "*(undefined ***)(*piVar6 + 0x104)" * (cast_expression "(undefined ***)(*piVar6 + 0x104)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar6 + 0x104)" ( (binary_expression "*piVar6 + 0x104" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" if (parenthesized_expression "(ppuVar13 != local_a8 + -0x1510f0)" ( (binary_expression "ppuVar13 != local_a8 + -0x1510f0" identifier != (binary_expression "local_a8 + -0x1510f0" identifier + number_literal)) )) (compound_statement "{\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" { (expression_statement "*(code **)(puVar17 + -0xc) = local_b4;" (assignment_expression "*(code **)(puVar17 + -0xc) = local_b4" (pointer_expression "*(code **)(puVar17 + -0xc)" * (cast_expression "(code **)(puVar17 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar17 + -0x10) = local_a4;" (assignment_expression "*(code **)(puVar17 + -0x10) = local_a4" (pointer_expression "*(code **)(puVar17 + -0x10)" * (cast_expression "(code **)(puVar17 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar17 + -0x14) = local_b0;" (assignment_expression "*(code **)(puVar17 + -0x14) = local_b0" (pointer_expression "*(code **)(puVar17 + -0x14)" * (cast_expression "(code **)(puVar17 + -0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar17 + -0x18) = param_5;" (assignment_expression "*(uint *)(puVar17 + -0x18) = param_5" (pointer_expression "*(uint *)(puVar17 + -0x18)" * (cast_expression "(uint *)(puVar17 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar17 + -0x1c) = param_4;" (assignment_expression "*(code **)(puVar17 + -0x1c) = param_4" (pointer_expression "*(code **)(puVar17 + -0x1c)" * (cast_expression "(code **)(puVar17 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar17 + -0x20) = param_2" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar17 + -0x24) = piVar6;" (assignment_expression "*(int **)(puVar17 + -0x24) = piVar6" (pointer_expression "*(int **)(puVar17 + -0x24)" * (cast_expression "(int **)(puVar17 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x24)" ( (binary_expression "puVar17 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x28) = 0x21eb71;" (assignment_expression "*(undefined4 *)(puVar17 + -0x28) = 0x21eb71" (pointer_expression "*(undefined4 *)(puVar17 + -0x28)" * (cast_expression "(undefined4 *)(puVar17 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x28)" ( (binary_expression "puVar17 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar13)();" (call_expression "(*(code *)ppuVar13)()" (parenthesized_expression "(*(code *)ppuVar13)" ( (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar13 = extraout_EDX_02;" (assignment_expression "ppuVar13 = extraout_EDX_02" identifier = identifier) ;) })) (expression_statement "pbVar4 = local_c4;" (assignment_expression "pbVar4 = local_c4" identifier = identifier) ;) (expression_statement "uVar28 = CONCAT44(ppuVar13,local_a4);" (assignment_expression "uVar28 = CONCAT44(ppuVar13,local_a4)" identifier = (call_expression "CONCAT44(ppuVar13,local_a4)" identifier (argument_list "(ppuVar13,local_a4)" ( identifier , identifier )))) ;) (expression_statement "ppcVar18 = (code **)(puVar17 + -4);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -4)" identifier = (cast_expression "(code **)(puVar17 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) ;) (if_statement "if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }" if (parenthesized_expression "(local_c4 != (byte *)0x0)" ( (binary_expression "local_c4 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }" { (expression_statement "local_a4 = (code *)&local_2c;" (assignment_expression "local_a4 = (code *)&local_2c" identifier = (cast_expression "(code *)&local_2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "iVar19 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar19 = *(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 **)(puVar17 + -0x14) = local_c4;" (assignment_expression "*(byte **)(puVar17 + -0x14) = local_c4" (pointer_expression "*(byte **)(puVar17 + -0x14)" * (cast_expression "(byte **)(puVar17 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_a4;" (assignment_expression "local_34 = local_a4" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21ea36;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21ea36" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" * (cast_expression "(undefined4 *)(puVar17 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar7 = strlen(*(char **)(puVar17 + -0x14));" (assignment_expression "sVar7 = strlen(*(char **)(puVar17 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar17 + -0x14))" identifier (argument_list "(*(char **)(puVar17 + -0x14))" ( (pointer_expression "*(char **)(puVar17 + -0x14)" * (cast_expression "(char **)(puVar17 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "ppcVar18 = local_a0;" (assignment_expression "ppcVar18 = local_a0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -8)" * (cast_expression "(undefined4 *)(puVar17 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;" (assignment_expression "*(byte **)(puVar17 + -0xc) = pbVar4 + sVar7" (pointer_expression "*(byte **)(puVar17 + -0xc)" * (cast_expression "(byte **)(puVar17 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = (binary_expression "pbVar4 + sVar7" identifier + identifier)) ;) (expression_statement "*(byte **)(puVar17 + -0x10) = pbVar4;" (assignment_expression "*(byte **)(puVar17 + -0x10) = pbVar4" (pointer_expression "*(byte **)(puVar17 + -0x10)" * (cast_expression "(byte **)(puVar17 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)(puVar17 + -0x14) = local_a0;" (assignment_expression "*(code ***)(puVar17 + -0x14) = local_a0" (pointer_expression "*(code ***)(puVar17 + -0x14)" * (cast_expression "(code ***)(puVar17 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21ea4b" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" * (cast_expression "(undefined4 *)(puVar17 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(code ***)(puVar17 + -0xc) = ppcVar18;" (assignment_expression "*(code ***)(puVar17 + -0xc) = ppcVar18" (pointer_expression "*(code ***)(puVar17 + -0xc)" * (cast_expression "(code ***)(puVar17 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = iVar19 + 0x44;" (assignment_expression "*(int *)(puVar17 + -0x10) = iVar19 + 0x44" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar19 + 0x44" identifier + number_literal)) ;) (expression_statement "*(code ***)(puVar17 + -0x14) = &local_9c;" (assignment_expression "*(code ***)(puVar17 + -0x14) = &local_9c" (pointer_expression "*(code ***)(puVar17 + -0x14)" * (cast_expression "(code ***)(puVar17 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21ea5f" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" * (cast_expression "(undefined4 *)(puVar17 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar16 = local_9c;" (assignment_expression "pcVar16 = local_9c" identifier = identifier) ;) (if_statement "if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }" if (parenthesized_expression "(local_34 != local_a4)" ( (binary_expression "local_34 != local_a4" identifier != identifier) )) (compound_statement "{\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }" { (expression_statement "*(code **)(puVar17 + -0x18) = local_34;" (assignment_expression "*(code **)(puVar17 + -0x18) = local_34" (pointer_expression "*(code **)(puVar17 + -0x18)" * (cast_expression "(code **)(puVar17 + -0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;" (assignment_expression "*(undefined4 *)(puVar17 + -0x1c) = 0x21ea82" (pointer_expression "*(undefined4 *)(puVar17 + -0x1c)" * (cast_expression "(undefined4 *)(puVar17 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppcVar18 = (code **)(puVar17 + -8);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -8)" identifier = (cast_expression "(code **)(puVar17 + -8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) ;) (expression_statement "iVar19 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar19 = *(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 "uVar28 = CONCAT44(iVar19,local_a4);" (assignment_expression "uVar28 = CONCAT44(iVar19,local_a4)" identifier = (call_expression "CONCAT44(iVar19,local_a4)" identifier (argument_list "(iVar19,local_a4)" ( identifier , identifier )))) ;) (if_statement "if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }" if (parenthesized_expression "(pcVar16 != (code *)(iVar19 + 0x48))" ( (binary_expression "pcVar16 != (code *)(iVar19 + 0x48)" identifier != (cast_expression "(code *)(iVar19 + 0x48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x48)" ( (binary_expression "iVar19 + 0x48" identifier + number_literal) )))) )) (compound_statement "{\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -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 "iVar5 = *(int *)(iVar19 + 0x18);" (assignment_expression "iVar5 = *(int *)(iVar19 + 0x18)" identifier = (pointer_expression "*(int *)(iVar19 + 0x18)" * (cast_expression "(int *)(iVar19 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x18)" ( (binary_expression "iVar19 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar19 + 0x14;" (assignment_expression "iVar9 = iVar19 + 0x14" identifier = (binary_expression "iVar19 + 0x14" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }" if (parenthesized_expression "(*(int *)(iVar19 + 0x18) == 0)" ( (binary_expression "*(int *)(iVar19 + 0x18) == 0" (pointer_expression "*(int *)(iVar19 + 0x18)" * (cast_expression "(int *)(iVar19 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x18)" ( (binary_expression "iVar19 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }" { (labeled_statement "LAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;" statement_identifier : (expression_statement "*(code ****)(puVar17 + -0x18) = &local_70;" (assignment_expression "*(code ****)(puVar17 + -0x18) = &local_70" (pointer_expression "*(code ****)(puVar17 + -0x18)" * (cast_expression "(code ****)(puVar17 + -0x18)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_70" & identifier)) ;)) (expression_statement "local_70 = local_a0;" (assignment_expression "local_70 = local_a0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;" (assignment_expression "*(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6" (pointer_expression "*(undefined4 *)(puVar17 + -0x1c)" * (cast_expression "(undefined4 *)(puVar17 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00212060();" (call_expression "FUN_00212060()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" identifier = identifier) ;) (expression_statement "iVar19 = extraout_EDX_03;" (assignment_expression "iVar19 = extraout_EDX_03" identifier = identifier) ;) }) (else_clause "else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }" else (compound_statement "{\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }" { (do_statement "do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);" do (compound_statement "{\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  }" { (while_statement "while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }" while (parenthesized_expression "((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))))" ( (parenthesized_expression "(iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))" ( (comma_expression "iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar5" identifier = identifier) , (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))" ( (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" identifier != (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" 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 "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }" { (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(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_0021eae2;" 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_0021eae2;" goto statement_identifier ;)) })) (expression_statement "piVar6 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar6 = (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 "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar6 != 0)" ( (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" * identifier) != number_literal) )) ;) (labeled_statement "LAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;" statement_identifier : (if_statement "if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;" if (parenthesized_expression "(((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     ))" ( (binary_expression "((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )" (parenthesized_expression "((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10)))" ( (binary_expression "(iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar10 == iVar19 + 0x14)" ( (binary_expression "iVar10 == iVar19 + 0x14" identifier == (binary_expression "iVar19 + 0x14" identifier + number_literal)) )) || (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" ( (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" identifier < (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )" ( (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))" ( (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" identifier == (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" 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 "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_0021ebb8;" goto statement_identifier ;))) }))) (expression_statement "uVar28 = CONCAT44(iVar19,local_a4);" (assignment_expression "uVar28 = CONCAT44(iVar19,local_a4)" identifier = (call_expression "CONCAT44(iVar19,local_a4)" identifier (argument_list "(iVar19,local_a4)" ( identifier , identifier )))) ;) (expression_statement "ppcVar18 = (code **)(puVar17 + -8);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -8)" identifier = (cast_expression "(code **)(puVar17 + -8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) ;) (expression_statement "puVar17 = puVar17 + -8;" (assignment_expression "puVar17 = puVar17 + -8" identifier = (binary_expression "puVar17 + -8" identifier + number_literal)) ;) (for_statement "for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }" for ( (assignment_expression "puVar3 = *(undefined4 **)(pcVar16 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(pcVar16 + 0x30)" * (cast_expression "(undefined4 **)(pcVar16 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x30)" ( (binary_expression "pcVar16 + 0x30" identifier + number_literal) ))))) ; (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar3 = (undefined4 *)*puVar3" identifier = (cast_expression "(undefined4 *)*puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) ) (compound_statement "{\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }" { (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(code ***)(puVar17 + -0x14) = &local_7c;" (assignment_expression "*(code ***)(puVar17 + -0x14) = &local_7c" (pointer_expression "*(code ***)(puVar17 + -0x14)" * (cast_expression "(code ***)(puVar17 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;" (assignment_expression "*(undefined4 **)(puVar17 + -0x18) = puVar3 + 1" (pointer_expression "*(undefined4 **)(puVar17 + -0x18)" * (cast_expression "(undefined4 **)(puVar17 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);" (assignment_expression "*(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18)" (pointer_expression "*(code **)(puVar17 + -0x1c)" * (cast_expression "(code **)(puVar17 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" * (cast_expression "(undefined1 **)(puVar17 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x21eb3b" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" * (cast_expression "(undefined4 *)(puVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x24)" ( (binary_expression "puVar17 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_7c = (code *)(iVar10 + 0x18);" (assignment_expression "local_7c = (code *)(iVar10 + 0x18)" identifier = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar28 = CONCAT44(extraout_EDX_01,local_a4);" (assignment_expression "uVar28 = CONCAT44(extraout_EDX_01,local_a4)" identifier = (call_expression "CONCAT44(extraout_EDX_01,local_a4)" identifier (argument_list "(extraout_EDX_01,local_a4)" ( identifier , identifier )))) ;) (expression_statement "ppcVar18 = (code **)(puVar17 + -4);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -4)" identifier = (cast_expression "(code **)(puVar17 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) ;) (expression_statement "puVar17 = puVar17 + -4;" (assignment_expression "puVar17 = puVar17 + -4" identifier = (binary_expression "puVar17 + -4" identifier + number_literal)) ;) })) })) })) })) })) }) (else_clause "else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }" else (compound_statement "{\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }" { (if_statement "if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(uVar15 < *(uint *)(param_4 + 0xb0))" ( (binary_expression "uVar15 < *(uint *)(param_4 + 0xb0)" identifier < (pointer_expression "*(uint *)(param_4 + 0xb0)" * (cast_expression "(uint *)(param_4 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb0)" ( (binary_expression "param_4 + 0xb0" identifier + number_literal) ))))) )) (compound_statement "{\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }" { (expression_statement "local_5c = (code *)0x0;" (assignment_expression "local_5c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;" statement_identifier : (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x596da" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x19ca36" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);" (assignment_expression "uVar15 = uVar15 - *(uint *)(param_4 + 0xb0)" identifier = (binary_expression "uVar15 - *(uint *)(param_4 + 0xb0)" identifier - (pointer_expression "*(uint *)(param_4 + 0xb0)" * (cast_expression "(uint *)(param_4 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb0)" ( (binary_expression "param_4 + 0xb0" identifier + number_literal) )))))) ;) (expression_statement "uVar8 = *(uint *)(param_4 + 0xbc);" (assignment_expression "uVar8 = *(uint *)(param_4 + 0xbc)" identifier = (pointer_expression "*(uint *)(param_4 + 0xbc)" * (cast_expression "(uint *)(param_4 + 0xbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xbc)" ( (binary_expression "param_4 + 0xbc" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = *(code ***)(param_4 + 0xc0);" (assignment_expression "local_a0 = *(code ***)(param_4 + 0xc0)" identifier = (pointer_expression "*(code ***)(param_4 + 0xc0)" * (cast_expression "(code ***)(param_4 + 0xc0)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_4 + 0xc0)" ( (binary_expression "param_4 + 0xc0" identifier + number_literal) ))))) ;) (if_statement "if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }" if (parenthesized_expression "((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15)" ( (binary_expression "(uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15" (call_expression "(uint)((int)((int)local_a0 - uVar8) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((int)local_a0 - uVar8) >> 2)" ( (binary_expression "(int)((int)local_a0 - uVar8) >> 2" (cast_expression "(int)((int)local_a0 - uVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_a0 - uVar8)" ( (binary_expression "(int)local_a0 - uVar8" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x59678" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x19cc7b" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = *(code **)(uVar8 + uVar15 * 4);" (assignment_expression "local_5c = *(code **)(uVar8 + uVar15 * 4)" identifier = (pointer_expression "*(code **)(uVar8 + uVar15 * 4)" * (cast_expression "(code **)(uVar8 + uVar15 * 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + uVar15 * 4)" ( (binary_expression "uVar8 + uVar15 * 4" identifier + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar29 = CONCAT44(uVar8,local_5c);" (assignment_expression "uVar29 = CONCAT44(uVar8,local_5c)" identifier = (call_expression "CONCAT44(uVar8,local_5c)" identifier (argument_list "(uVar8,local_5c)" ( identifier , identifier )))) ;) (if_statement "if (local_5c == (code *)0x0) goto LAB_0021ecef;" if (parenthesized_expression "(local_5c == (code *)0x0)" ( (binary_expression "local_5c == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0021ecef;" goto statement_identifier ;)) (if_statement "if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }" if (parenthesized_expression "(((byte)local_5c[0x2a] & 0x10) != 0)" ( (binary_expression "((byte)local_5c[0x2a] & 0x10) != 0" (parenthesized_expression "((byte)local_5c[0x2a] & 0x10)" ( (binary_expression "(byte)local_5c[0x2a] & 0x10" (cast_expression "(byte)local_5c[0x2a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2a]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }" { (expression_statement "*(code **)((int)ppcVar18 + -0xc) = local_5c;" (assignment_expression "*(code **)((int)ppcVar18 + -0xc) = local_5c" (pointer_expression "*(code **)((int)ppcVar18 + -0xc)" * (cast_expression "(code **)((int)ppcVar18 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = param_2;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = param_2" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar29 = FUN_0034cd90();" (assignment_expression "uVar29 = FUN_0034cd90()" identifier = (call_expression "FUN_0034cd90()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "local_5c = (code *)uVar29;" (assignment_expression "local_5c = (code *)uVar29" identifier = (cast_expression "(code *)uVar29" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }" if (parenthesized_expression "(((byte)local_5c[0x2a] & 7) == 0)" ( (binary_expression "((byte)local_5c[0x2a] & 7) == 0" (parenthesized_expression "((byte)local_5c[0x2a] & 7)" ( (binary_expression "(byte)local_5c[0x2a] & 7" (cast_expression "(byte)local_5c[0x2a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2a]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }" { (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" identifier = (pointer_expression "*(code **)(local_5c + 0x30)" * (cast_expression "(code **)(local_5c + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0x30)" ( (binary_expression "local_5c + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_b0 = *(code **)(local_5c + 8);" (assignment_expression "local_b0 = *(code **)(local_5c + 8)" identifier = (pointer_expression "*(code **)(local_5c + 8)" * (cast_expression "(code **)(local_5c + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 8)" ( (binary_expression "local_5c + 8" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" identifier = (binary_expression "local_d8 + local_ac" identifier + identifier)) ;) (if_statement "if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }" if (parenthesized_expression "(((byte)local_b0[0x2c] & 1) == 0)" ( (binary_expression "((byte)local_b0[0x2c] & 1) == 0" (parenthesized_expression "((byte)local_b0[0x2c] & 1)" ( (binary_expression "(byte)local_b0[0x2c] & 1" (cast_expression "(byte)local_b0[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_b0[0x2c]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }" { (expression_statement "cVar1 = local_5c[0x28];" (assignment_expression "cVar1 = local_5c[0x28]" identifier = (subscript_expression "local_5c[0x28]" identifier [ number_literal ])) ;) (expression_statement "local_a4 = *(code **)(local_5c + 0xc);" (assignment_expression "local_a4 = *(code **)(local_5c + 0xc)" identifier = (pointer_expression "*(code **)(local_5c + 0xc)" * (cast_expression "(code **)(local_5c + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0xc)" ( (binary_expression "local_5c + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar14 = (byte)local_5c[0x2b] >> 5 & 1;" (assignment_expression "bVar14 = (byte)local_5c[0x2b] >> 5 & 1" identifier = (binary_expression "(byte)local_5c[0x2b] >> 5 & 1" (binary_expression "(byte)local_5c[0x2b] >> 5" (cast_expression "(byte)local_5c[0x2b]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2b]" identifier [ number_literal ])) >> number_literal) & number_literal)) ;) (expression_statement "bVar24 = ((byte)cVar1 & 0xf) < 2;" (assignment_expression "bVar24 = ((byte)cVar1 & 0xf) < 2" identifier = (binary_expression "((byte)cVar1 & 0xf) < 2" (parenthesized_expression "((byte)cVar1 & 0xf)" ( (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) < number_literal)) ;) (expression_statement "bVar26 = ((byte)cVar1 & 0xf) == 2;" (assignment_expression "bVar26 = ((byte)cVar1 & 0xf) == 2" identifier = (binary_expression "((byte)cVar1 & 0xf) == 2" (parenthesized_expression "((byte)cVar1 & 0xf)" ( (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal)) ;) (expression_statement "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" identifier = (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(cVar1,local_5c)" identifier (argument_list "(cVar1,local_5c)" ( identifier , identifier )))) & number_literal)) ;) (if_statement "if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" { (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = local_be == '\0';" (assignment_expression "bVar26 = local_be == '\0'" identifier = (binary_expression "local_be == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" identifier = (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(cVar1,local_5c)" identifier (argument_list "(cVar1,local_5c)" ( identifier , identifier )))) & number_literal)) ;) (if_statement "if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }" { (if_statement "if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }" if (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }" { (if_statement "if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }" if (parenthesized_expression "(*(int *)(*local_b8 + 8) == 0)" ( (binary_expression "*(int *)(*local_b8 + 8) == 0" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }" { (expression_statement "*(code **)((int)ppcVar18 + -4) = local_5c;" (assignment_expression "*(code **)((int)ppcVar18 + -4) = local_5c" (pointer_expression "*(code **)((int)ppcVar18 + -4)" * (cast_expression "(code **)((int)ppcVar18 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" * (cast_expression "(undefined ***)((int)ppcVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a8 + -0x5941e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }" if (parenthesized_expression "((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0))" ( (binary_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)" (parenthesized_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_b8 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*local_b8 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_b8 + 8)" * (cast_expression "(int *)(*local_b8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_b8 + 8)" ( (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(((byte)local_5c[0x29] & 3) == 0)" ( (binary_expression "((byte)local_5c[0x29] & 3) == 0" (parenthesized_expression "((byte)local_5c[0x29] & 3)" ( (binary_expression "(byte)local_5c[0x29] & 3" (cast_expression "(byte)local_5c[0x29]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x29]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }" { (expression_statement "uVar8 = local_e4 - 4;" (assignment_expression "uVar8 = local_e4 - 4" identifier = (binary_expression "local_e4 - 4" identifier - number_literal)) ;) (expression_statement "bVar24 = uVar8 < 0x36;" (assignment_expression "bVar24 = uVar8 < 0x36" identifier = (binary_expression "uVar8 < 0x36" identifier < number_literal)) ;) (expression_statement "bVar26 = uVar8 == 0x36;" (assignment_expression "bVar26 = uVar8 == 0x36" identifier = (binary_expression "uVar8 == 0x36" identifier == number_literal)) ;) (expression_statement "uVar29 = CONCAT44(uVar8,local_5c);" (assignment_expression "uVar29 = CONCAT44(uVar8,local_5c)" identifier = (call_expression "CONCAT44(uVar8,local_5c)" identifier (argument_list "(uVar8,local_5c)" ( identifier , identifier )))) ;) (if_statement "if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }" if (parenthesized_expression "(uVar8 < 0x37)" ( (binary_expression "uVar8 < 0x37" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }" { (expression_statement "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();" (call_expression "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))()" (parenthesized_expression "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))" ( (pointer_expression "*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8)" * (cast_expression "(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8[local_e4 - 0x597df] + (int)local_a8)" ( (binary_expression "local_a8[local_e4 - 0x597df] + (int)local_a8" (subscript_expression "local_a8[local_e4 - 0x597df]" identifier [ (binary_expression "local_e4 - 0x597df" identifier - number_literal) ]) + (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0021e7e0;" goto statement_identifier ;) })) })) (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" 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 "*(undefined4 *)((int)ppcVar18 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x10)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(code ****)((int)ppcVar18 + -0x14) = &local_80;" (assignment_expression "*(code ****)((int)ppcVar18 + -0x14) = &local_80" (pointer_expression "*(code ****)((int)ppcVar18 + -0x14)" * (cast_expression "(code ****)((int)ppcVar18 + -0x14)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_80" & identifier)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0x18) = &local_64;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x18) = &local_64" (pointer_expression "*(code ***)((int)ppcVar18 + -0x18)" * (cast_expression "(code ***)((int)ppcVar18 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x18)" ( (binary_expression "(int)ppcVar18 + -0x18" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "local_80 = local_a0 + 0xd;" (assignment_expression "local_80 = local_a0 + 0xd" identifier = (binary_expression "local_a0 + 0xd" identifier + number_literal)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0x1c) = local_80;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x1c) = local_80" (pointer_expression "*(code ***)((int)ppcVar18 + -0x1c)" * (cast_expression "(code ***)((int)ppcVar18 + -0x1c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0x1c)" ( (binary_expression "(int)ppcVar18 + -0x1c" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)ppcVar18 + -0x20)" * (cast_expression "(undefined1 **)((int)ppcVar18 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x20)" ( (binary_expression "(int)ppcVar18 + -0x20" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x24)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x24)" ( (binary_expression "(int)ppcVar18 + -0x24" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_b0;" (assignment_expression "local_64 = local_b0" identifier = identifier) ;) (expression_statement "local_60 = local_a4;" (assignment_expression "local_60 = local_a4" identifier = identifier) ;) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);" (assignment_expression "bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20)" identifier = (binary_expression "(undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20)" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)ppcVar18 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x20)" ( (binary_expression "(int)ppcVar18 + -0x20" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar26 = ppcVar18 == (code **)0x4;" (assignment_expression "bVar26 = ppcVar18 == (code **)0x4" identifier = (binary_expression "ppcVar18 == (code **)0x4" identifier == (cast_expression "(code **)0x4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "ppcVar18 = (code **)((int)ppcVar18 + -4);" (assignment_expression "ppcVar18 = (code **)((int)ppcVar18 + -4)" identifier = (cast_expression "(code **)((int)ppcVar18 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -4)" ( (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar29 = CONCAT44(extraout_EDX_05,local_5c);" (assignment_expression "uVar29 = CONCAT44(extraout_EDX_05,local_5c)" identifier = (call_expression "CONCAT44(extraout_EDX_05,local_5c)" identifier (argument_list "(extraout_EDX_05,local_5c)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }" else (compound_statement "{\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }" { (expression_statement "local_a4 = (code *)0x0;" (assignment_expression "local_a4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }" else (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }" { (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" identifier = (pointer_expression "*(code **)(local_5c + 0x30)" * (cast_expression "(code **)(local_5c + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0x30)" ( (binary_expression "local_5c + 0x30" identifier + number_literal) ))))) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = (code *)0x0;" (assignment_expression "local_a4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar24 = CARRY4(local_ac,(uint)local_d8);" (assignment_expression "bVar24 = CARRY4(local_ac,(uint)local_d8)" identifier = (call_expression "CARRY4(local_ac,(uint)local_d8)" identifier (argument_list "(local_ac,(uint)local_d8)" ( identifier , (cast_expression "(uint)local_d8" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" identifier = (binary_expression "local_d8 + local_ac" identifier + identifier)) ;) (expression_statement "bVar26 = local_b4 == (code *)0x0;" (assignment_expression "bVar26 = local_b4 == (code *)0x0" identifier = (binary_expression "local_b4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }))) (labeled_statement "LAB_0021e7e0:\n        local_5c = (code *)uVar29;" statement_identifier : (expression_statement "local_5c = (code *)uVar29;" (assignment_expression "local_5c = (code *)uVar29" identifier = (cast_expression "(code *)uVar29" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "pbVar4 = *(byte **)local_5c;" (assignment_expression "pbVar4 = *(byte **)local_5c" identifier = (pointer_expression "*(byte **)local_5c" * (cast_expression "(byte **)local_5c" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar19 = 8;" (assignment_expression "iVar19 = 8" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)((int)local_a8 + -0x19ca26);" (assignment_expression "pbVar20 = (byte *)((int)local_a8 + -0x19ca26)" identifier = (cast_expression "(byte *)((int)local_a8 + -0x19ca26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19ca26)" ( (binary_expression "(int)local_a8 + -0x19ca26" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar22 = pbVar4;" (assignment_expression "pbVar22 = pbVar4" identifier = identifier) ;) (do_statement "do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar20 < *pbVar22;" (assignment_expression "bVar24 = *pbVar20 < *pbVar22" identifier = (binary_expression "*pbVar20 < *pbVar22" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar26 = *pbVar20 == *pbVar22;" (assignment_expression "bVar26 = *pbVar20 == *pbVar22" identifier = (binary_expression "*pbVar20 == *pbVar22" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }" { (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pbVar4 = pbVar4 + 8;" (assignment_expression "pbVar4 = pbVar4 + 8" identifier = (binary_expression "pbVar4 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }" else (compound_statement "{\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }" { (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);" (assignment_expression "pbVar20 = (byte *)((int)local_a8 + -0x19ca1d)" identifier = (cast_expression "(byte *)((int)local_a8 + -0x19ca1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -0x19ca1d)" ( (binary_expression "(int)local_a8 + -0x19ca1d" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar22 = pbVar4;" (assignment_expression "pbVar22 = pbVar4" identifier = identifier) ;) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar20 < *pbVar22;" (assignment_expression "bVar25 = *pbVar20 < *pbVar22" identifier = (binary_expression "*pbVar20 < *pbVar22" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar24 = *pbVar20 == *pbVar22;" (assignment_expression "bVar24 = *pbVar20 == *pbVar22" identifier = (binary_expression "*pbVar20 == *pbVar22" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "cVar11 = (!bVar25 && !bVar24) - bVar25;" (assignment_expression "cVar11 = (!bVar25 && !bVar24) - bVar25" identifier = (binary_expression "(!bVar25 && !bVar24) - bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) - identifier)) ;) (expression_statement "pbVar4 = pbVar4 + 7;" (assignment_expression "pbVar4 = pbVar4 + 7" identifier = (binary_expression "pbVar4 + 7" identifier + number_literal)) ;) (if_statement "if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pbVar4 = local_c4;\n          }" { (expression_statement "pbVar4 = local_c4;" (assignment_expression "pbVar4 = local_c4" identifier = identifier) ;) })) }))) (expression_statement "local_c4 = pbVar4;" (assignment_expression "local_c4 = pbVar4" identifier = identifier) ;) (expression_statement "uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);" (assignment_expression "uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11)" identifier = (call_expression "CONCAT31((int3)(uVar29 >> 0x28),cVar11)" identifier (argument_list "((int3)(uVar29 >> 0x28),cVar11)" ( (call_expression "(int3)(uVar29 >> 0x28)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar29 >> 0x28)" ( (binary_expression "uVar29 >> 0x28" identifier >> number_literal) ))) , identifier )))) ;) (if_statement "if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" if (parenthesized_expression "(local_bd != '\0')" ( (binary_expression "local_bd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" { (if_statement "if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (compound_statement "{\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }" { (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }" else (compound_statement "{\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }" { (expression_statement "local_34 = local_b0;" (assignment_expression "local_34 = local_b0" identifier = identifier) ;) (expression_statement "local_30 = (uint)local_a4;" (assignment_expression "local_30 = (uint)local_a4" identifier = (cast_expression "(uint)local_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_bc;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_bc" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar3 = *(undefined4 **)(local_c8 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_c8 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_c8 + 4)" * (cast_expression "(undefined4 **)(local_c8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 4)" ( (binary_expression "local_c8 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }" if (parenthesized_expression "(puVar3 == *(undefined4 **)(local_c8 + 8))" ( (binary_expression "puVar3 == *(undefined4 **)(local_c8 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_c8 + 8)" * (cast_expression "(undefined4 **)(local_c8 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 8)" ( (binary_expression "local_c8 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }" { (expression_statement "*(code ***)((int)ppcVar18 + -8) = &local_5c;" (assignment_expression "*(code ***)((int)ppcVar18 + -8) = &local_5c" (pointer_expression "*(code ***)((int)ppcVar18 + -8)" * (cast_expression "(code ***)((int)ppcVar18 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;" (assignment_expression "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3" (pointer_expression "*(undefined4 **)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 **)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_c8" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000726c0();" (call_expression "FUN_000726c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }" else (compound_statement "{\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }" { (expression_statement "*puVar3 = local_5c;" (assignment_expression "*puVar3 = local_5c" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(local_c8 + 4) = puVar3 + 1;" (assignment_expression "*(undefined4 **)(local_c8 + 4) = puVar3 + 1" (pointer_expression "*(undefined4 **)(local_c8 + 4)" * (cast_expression "(undefined4 **)(local_c8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 4)" ( (binary_expression "local_c8 + 4" identifier + number_literal) )))) = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_dc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_d8;" (assignment_expression "local_34 = local_d8" identifier = identifier) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" identifier = (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = *param_7;" (assignment_expression "uVar8 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "puVar3 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_cc + 4)" identifier = (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);" (assignment_expression "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" identifier = (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" ( (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" if (parenthesized_expression "(puVar3 == *(undefined4 **)(local_cc + 8))" ( (binary_expression "puVar3 == *(undefined4 **)(local_cc + 8)" identifier == (pointer_expression "*(undefined4 **)(local_cc + 8)" * (cast_expression "(undefined4 **)(local_cc + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 8)" ( (binary_expression "local_cc + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }" { (expression_statement "*(code ***)((int)ppcVar18 + -8) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -8) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -8)" * (cast_expression "(code ***)((int)ppcVar18 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -8)" ( (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;" (assignment_expression "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3" (pointer_expression "*(undefined4 **)((int)ppcVar18 + -0xc)" * (cast_expression "(undefined4 **)((int)ppcVar18 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_cc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_cc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" else (compound_statement "{\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" { (expression_statement "*puVar3 = local_34;" (assignment_expression "*puVar3 = local_34" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar3 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar3 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) )))) = (binary_expression "puVar3 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" * (cast_expression "(code ***)((int)ppcVar18 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar18 + -0xc)" ( (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_e0" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" * (cast_expression "(int *)((int)ppcVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar12 = extraout_EDX_00;" (assignment_expression "uVar12 = extraout_EDX_00" identifier = identifier) ;) })) (expression_statement "uVar28 = CONCAT44(uVar12,local_a4);" (assignment_expression "uVar28 = CONCAT44(uVar12,local_a4)" identifier = (call_expression "CONCAT44(uVar12,local_a4)" identifier (argument_list "(uVar12,local_a4)" ( identifier , identifier )))) ;) (expression_statement "puVar17 = (undefined1 *)ppcVar18;" (assignment_expression "puVar17 = (undefined1 *)ppcVar18" identifier = (cast_expression "(undefined1 *)ppcVar18" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar14 != 0) goto LAB_0021e8f0;" if (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0021e8f0;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0021e5a5:\n      local_a4 = (code *)uVar28;" statement_identifier : (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" identifier = (cast_expression "(code *)uVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 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)) ;) }) while (parenthesized_expression "(param_8 != local_d4)" ( (binary_expression "param_8 != local_d4" identifier != identifier) )) ;) })) (if_statement "if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_4c[0] != local_ec)" ( (binary_expression "local_4c[0] != local_ec" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }" { (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" * (cast_expression "(code **)((int)ppcVar18 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar18 + -0x10)" ( (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar18 + -0x14)" ( (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" ( (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 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (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 (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ 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) ))))) ;) (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 *)) ) (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 IDENT + 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 = (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 * (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 (binary_expression (parenthesized_expression ( IDENT )) * (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)) == (pointer_expression * 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 = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = 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 = (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) )))) ;) (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) ;) (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 * (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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (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 { (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 *)) ) (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 = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (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)) == (pointer_expression * 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 = (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)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (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)) == (pointer_expression * 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 = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT)) ;) })) })) })) })) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 = (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))) ;) (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 (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 ( ))) ;) })) (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)) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 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 = (cast_expression ( (type_descriptor TYPE) ) 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 (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) )))) = 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 = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (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) )))) = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (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 (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 *))) ) (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) )))) = 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 IDENT = (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 IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (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 (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) )))) = IDENT) ;) (expression_statement (assignment_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 ( ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (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) )))) = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 (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 *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = 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 = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = 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 (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 *))) ) (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 *))) ) (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 ( ))) ;) }) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & 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) )))) = 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 = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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 * (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 (pointer_expression * IDENT) + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (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 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 (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_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 * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (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) )))) = 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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (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 *)) ) (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 *)) ) (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 (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 * (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 * (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 * (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) )))) = 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 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 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 * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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) ;) (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 *)) ) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) })) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) ))) >> 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 (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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) (subscript_expression 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 (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) )))) = 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 IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) & LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 *))) ) (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 (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 ')) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) ))) )) (compound_statement { (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 = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) })) (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 *)) ) (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) )))) = LIT) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (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) )))) = 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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 * (abstract_pointer_declarator *))) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (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 = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (char_literal ' escape_sequence ')) ;) (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 (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) , 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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (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) )))) = 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 * (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 (cast_expression ( (type_descriptor TYPE) ) 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 (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) )))) = 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 ( ))) ;) }) (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 (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 *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 ( ))) ;) (expression_statement (assignment_expression IDENT = 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 (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 *))) ) (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 *))) ) (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 ( ))) ;) }) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & 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) )))) = 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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (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_0021e380(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,uint param_5,\n                 int param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)\n\n{\n  code cVar1;\n  ushort uVar2;\n  undefined4 *puVar3;\n  byte *pbVar4;\n  int iVar5;\n  int *piVar6;\n  size_t sVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  code *extraout_EDX_06;\n  code *extraout_EDX_07;\n  byte bVar14;\n  uint uVar15;\n  code *pcVar16;\n  undefined1 *puVar17;\n  code **ppcVar18;\n  code *unaff_ESI;\n  int iVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  byte *pbVar22;\n  code *pcVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  ulonglong uVar29;\n  int iStack_f0;\n  code *local_ec;\n  code **local_e8;\n  uint local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  code *local_cc;\n  int local_c8;\n  byte *local_c4;\n  char local_be;\n  char local_bd;\n  int local_bc;\n  int *local_b8;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  undefined **local_a8;\n  code *local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [16];\n  code **local_84;\n  code **local_80;\n  code *local_7c;\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  undefined4 local_60;\n  code *local_5c;\n  uint local_58;\n  code *local_54;\n  undefined4 local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  uint local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  local_a8 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_b8 = &DAT_005ea7c8;\n  iVar19 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar19 = *local_b8;\n  pcVar16 = *(code **)(iVar19 + 8);\n  if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }\n  if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }\n  local_be = '\0';\n  if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }\n  uVar28 = CONCAT44(pcVar16,local_a4);\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0021e380(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,uint param_5,\n                 int param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)" (identifier "FUN_0021e380") (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,uint param_5,\n                 int 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 "code *param_4" (type_identifier "code") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (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  code cVar1;\n  ushort uVar2;\n  undefined4 *puVar3;\n  byte *pbVar4;\n  int iVar5;\n  int *piVar6;\n  size_t sVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  code *extraout_EDX_06;\n  code *extraout_EDX_07;\n  byte bVar14;\n  uint uVar15;\n  code *pcVar16;\n  undefined1 *puVar17;\n  code **ppcVar18;\n  code *unaff_ESI;\n  int iVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  byte *pbVar22;\n  code *pcVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  ulonglong uVar29;\n  int iStack_f0;\n  code *local_ec;\n  code **local_e8;\n  uint local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  code *local_cc;\n  int local_c8;\n  byte *local_c4;\n  char local_be;\n  char local_bd;\n  int local_bc;\n  int *local_b8;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  undefined **local_a8;\n  code *local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [16];\n  code **local_84;\n  code **local_80;\n  code *local_7c;\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  undefined4 local_60;\n  code *local_5c;\n  uint local_58;\n  code *local_54;\n  undefined4 local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  uint local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  local_a8 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_b8 = &DAT_005ea7c8;\n  iVar19 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar19 = *local_b8;\n  pcVar16 = *(code **)(iVar19 + 8);\n  if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }\n  if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }\n  local_be = '\0';\n  if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }\n  uVar28 = CONCAT44(pcVar16,local_a4);\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }\n  return;\n}" ({ "{") (declaration "code cVar1;" (type_identifier "code") (identifier "cVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined4 extraout_EDX_00;" (type_identifier "undefined4") (identifier "extraout_EDX_00") (; ";")) (declaration "undefined **ppuVar13;" (type_identifier "undefined") (pointer_declarator "**ppuVar13" (* "*") (pointer_declarator "*ppuVar13" (* "*") (identifier "ppuVar13"))) (; ";")) (declaration "undefined4 extraout_EDX_01;" (type_identifier "undefined4") (identifier "extraout_EDX_01") (; ";")) (declaration "undefined **extraout_EDX_02;" (type_identifier "undefined") (pointer_declarator "**extraout_EDX_02" (* "*") (pointer_declarator "*extraout_EDX_02" (* "*") (identifier "extraout_EDX_02"))) (; ";")) (declaration "int extraout_EDX_03;" (primitive_type "int") (identifier "extraout_EDX_03") (; ";")) (declaration "undefined4 extraout_EDX_04;" (type_identifier "undefined4") (identifier "extraout_EDX_04") (; ";")) (declaration "undefined4 extraout_EDX_05;" (type_identifier "undefined4") (identifier "extraout_EDX_05") (; ";")) (declaration "code *extraout_EDX_06;" (type_identifier "code") (pointer_declarator "*extraout_EDX_06" (* "*") (identifier "extraout_EDX_06")) (; ";")) (declaration "code *extraout_EDX_07;" (type_identifier "code") (pointer_declarator "*extraout_EDX_07" (* "*") (identifier "extraout_EDX_07")) (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "code *pcVar16;" (type_identifier "code") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "code **ppcVar18;" (type_identifier "code") (pointer_declarator "**ppcVar18" (* "*") (pointer_declarator "*ppcVar18" (* "*") (identifier "ppcVar18"))) (; ";")) (declaration "code *unaff_ESI;" (type_identifier "code") (pointer_declarator "*unaff_ESI" (* "*") (identifier "unaff_ESI")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "code *pcVar21;" (type_identifier "code") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "bool bVar24;" (primitive_type "bool") (identifier "bVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "byte bVar27;" (type_identifier "byte") (identifier "bVar27") (; ";")) (declaration "undefined8 uVar28;" (type_identifier "undefined8") (identifier "uVar28") (; ";")) (declaration "ulonglong uVar29;" (type_identifier "ulonglong") (identifier "uVar29") (; ";")) (declaration "int iStack_f0;" (primitive_type "int") (identifier "iStack_f0") (; ";")) (declaration "code *local_ec;" (type_identifier "code") (pointer_declarator "*local_ec" (* "*") (identifier "local_ec")) (; ";")) (declaration "code **local_e8;" (type_identifier "code") (pointer_declarator "**local_e8" (* "*") (pointer_declarator "*local_e8" (* "*") (identifier "local_e8"))) (; ";")) (declaration "uint local_e4;" (type_identifier "uint") (identifier "local_e4") (; ";")) (declaration "int local_e0;" (primitive_type "int") (identifier "local_e0") (; ";")) (declaration "code *local_dc;" (type_identifier "code") (pointer_declarator "*local_dc" (* "*") (identifier "local_dc")) (; ";")) (declaration "code *local_d8;" (type_identifier "code") (pointer_declarator "*local_d8" (* "*") (identifier "local_d8")) (; ";")) (declaration "int local_d4;" (primitive_type "int") (identifier "local_d4") (; ";")) (declaration "undefined1 *local_d0;" (type_identifier "undefined1") (pointer_declarator "*local_d0" (* "*") (identifier "local_d0")) (; ";")) (declaration "code *local_cc;" (type_identifier "code") (pointer_declarator "*local_cc" (* "*") (identifier "local_cc")) (; ";")) (declaration "int local_c8;" (primitive_type "int") (identifier "local_c8") (; ";")) (declaration "byte *local_c4;" (type_identifier "byte") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4")) (; ";")) (declaration "char local_be;" (primitive_type "char") (identifier "local_be") (; ";")) (declaration "char local_bd;" (primitive_type "char") (identifier "local_bd") (; ";")) (declaration "int local_bc;" (primitive_type "int") (identifier "local_bc") (; ";")) (declaration "int *local_b8;" (primitive_type "int") (pointer_declarator "*local_b8" (* "*") (identifier "local_b8")) (; ";")) (declaration "code *local_b4;" (type_identifier "code") (pointer_declarator "*local_b4" (* "*") (identifier "local_b4")) (; ";")) (declaration "code *local_b0;" (type_identifier "code") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "uint local_ac;" (type_identifier "uint") (identifier "local_ac") (; ";")) (declaration "undefined **local_a8;" (type_identifier "undefined") (pointer_declarator "**local_a8" (* "*") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8"))) (; ";")) (declaration "code *local_a4;" (type_identifier "code") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4")) (; ";")) (declaration "code **local_a0;" (type_identifier "code") (pointer_declarator "**local_a0" (* "*") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0"))) (; ";")) (declaration "code *local_9c;" (type_identifier "code") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c")) (; ";")) (declaration "int local_98;" (primitive_type "int") (identifier "local_98") (; ";")) (declaration "undefined1 local_94 [16];" (type_identifier "undefined1") (array_declarator "local_94 [16]" (identifier "local_94") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "code **local_84;" (type_identifier "code") (pointer_declarator "**local_84" (* "*") (pointer_declarator "*local_84" (* "*") (identifier "local_84"))) (; ";")) (declaration "code **local_80;" (type_identifier "code") (pointer_declarator "**local_80" (* "*") (pointer_declarator "*local_80" (* "*") (identifier "local_80"))) (; ";")) (declaration "code *local_7c;" (type_identifier "code") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "code *local_78;" (type_identifier "code") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "code **local_74;" (type_identifier "code") (pointer_declarator "**local_74" (* "*") (pointer_declarator "*local_74" (* "*") (identifier "local_74"))) (; ";")) (declaration "code **local_70;" (type_identifier "code") (pointer_declarator "**local_70" (* "*") (pointer_declarator "*local_70" (* "*") (identifier "local_70"))) (; ";")) (declaration "code *local_6c;" (type_identifier "code") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "code *local_64;" (type_identifier "code") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "code *local_5c;" (type_identifier "code") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "code *local_54;" (type_identifier "code") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "code *local_4c [2];" (type_identifier "code") (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 "code *local_34;" (type_identifier "code") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "uint local_30;" (type_identifier "uint") (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 "bVar27 = 0;" (assignment_expression "bVar27 = 0" (identifier "bVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = &__DT_PLTGOT;" (assignment_expression "local_a8 = &__DT_PLTGOT" (identifier "local_a8") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (if_statement "if (param_6 == 9) {\n    return;\n  }" (if "if") (parenthesized_expression "(param_6 == 9)" (( "(") (binary_expression "param_6 == 9" (identifier "param_6") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_b8 = &DAT_005ea7c8;" (assignment_expression "local_b8 = &DAT_005ea7c8" (identifier "local_b8") (= "=") (pointer_expression "&DAT_005ea7c8" (& "&") (identifier "DAT_005ea7c8"))) (; ";")) (expression_statement "iVar19 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar19 = *(int *)(DAT_005ea7c8 + 8)" (identifier "iVar19") (= "=") (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 (iVar19 == 0) {\n    iStack_f0 = iVar19;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iStack_f0 = iVar19;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "iStack_f0 = iVar19;" (assignment_expression "iStack_f0 = iVar19" (identifier "iStack_f0") (= "=") (identifier "iVar19")) (; ";")) (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 *)(iVar19 + 0x5934) == 0) {\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar19 + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(iVar19 + 0x5934) == 0" (pointer_expression "*(int *)(iVar19 + 0x5934)" (* "*") (cast_expression "(int *)(iVar19 + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x5934)" (( "(") (binary_expression "iVar19 + 0x5934" (identifier "iVar19") (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_ec = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_ec;\n    FUN_00072b90(local_4c,"","");\n    ppcVar18 = &local_ec;\n  }" ({ "{") (expression_statement "local_ec = (code *)local_44;" (assignment_expression "local_ec = (code *)local_44" (identifier "local_ec") (= "=") (cast_expression "(code *)local_44" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) (; ";")) (expression_statement "iStack_f0 = 0;" (assignment_expression "iStack_f0 = 0" (identifier "iStack_f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c[0] = local_ec;" (assignment_expression "local_4c[0] = local_ec" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_ec")) (; ";")) (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 "ppcVar18 = &local_ec;" (assignment_expression "ppcVar18 = &local_ec" (identifier "ppcVar18") (= "=") (pointer_expression "&local_ec" (& "&") (identifier "local_ec"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }" (else "else") (compound_statement "{\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_ec = (code *)local_44;\n    ppcVar18 = (code **)&iStack_f0;\n  }" ({ "{") (expression_statement "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*(uint *)param_4 + 0x40))" (( "(") (pointer_expression "**(code **)(*(uint *)param_4 + 0x40)" (* "*") (pointer_expression "*(code **)(*(uint *)param_4 + 0x40)" (* "*") (cast_expression "(code **)(*(uint *)param_4 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(uint *)param_4 + 0x40)" (( "(") (binary_expression "*(uint *)param_4 + 0x40" (pointer_expression "*(uint *)param_4" (* "*") (cast_expression "(uint *)param_4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (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_ec = (code *)local_44;" (assignment_expression "local_ec = (code *)local_44" (identifier "local_ec") (= "=") (cast_expression "(code *)local_44" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) (; ";")) (expression_statement "ppcVar18 = (code **)&iStack_f0;" (assignment_expression "ppcVar18 = (code **)&iStack_f0" (identifier "ppcVar18") (= "=") (cast_expression "(code **)&iStack_f0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&iStack_f0" (& "&") (identifier "iStack_f0")))) (; ";")) (} "}")))) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" (identifier "pcVar21") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" (identifier "iVar19") (= "=") (pointer_expression "*local_b8" (* "*") (identifier "local_b8"))) (; ";")) (expression_statement "pcVar16 = *(code **)(iVar19 + 8);" (assignment_expression "pcVar16 = *(code **)(iVar19 + 8)" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)(iVar19 + 8)" (* "*") (cast_expression "(code **)(iVar19 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + 8)" (( "(") (binary_expression "iVar19 + 8" (identifier "iVar19") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (pcVar16 == (code *)0x0) {\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }" (if "if") (parenthesized_expression "(pcVar16 == (code *)0x0)" (( "(") (binary_expression "pcVar16 == (code *)0x0" (identifier "pcVar16") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *(int *)((int)ppcVar18 + -4) = iVar19;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;\n    FUN_002446e0();\n  }" ({ "{") (expression_statement "*(int *)((int)ppcVar18 + -4) = iVar19;" (assignment_expression "*(int *)((int)ppcVar18 + -4) = iVar19" (pointer_expression "*(int *)((int)ppcVar18 + -4)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -4)" (( "(") (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" (* "*") (cast_expression "(undefined ***)((int)ppcVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a8 + -0x5941e" (identifier "local_a8") (+ "+") (number_literal "-0x5941e"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21f139")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(uint *)(pcVar16 + 0x5934) == 0) {\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }\n  else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }" (if "if") (parenthesized_expression "(*(uint *)(pcVar16 + 0x5934) == 0)" (( "(") (binary_expression "*(uint *)(pcVar16 + 0x5934) == 0" (pointer_expression "*(uint *)(pcVar16 + 0x5934)" (* "*") (cast_expression "(uint *)(pcVar16 + 0x5934)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar16 + 0x5934)" (( "(") (binary_expression "pcVar16 + 0x5934" (identifier "pcVar16") (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0021e40f:\n    local_bd = '\0';\n    local_e0 = 0;\n    local_cc = (code *)0x0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    local_bc = 0;\n  }" ({ "{") (labeled_statement "LAB_0021e40f:\n    local_bd = '\0';" (statement_identifier "LAB_0021e40f") (: ":") (expression_statement "local_bd = '\0';" (assignment_expression "local_bd = '\0'" (identifier "local_bd") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" (identifier "local_e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" (identifier "local_cc") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_dc = (code *)0x0;" (assignment_expression "local_dc = (code *)0x0" (identifier "local_dc") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }" (else "else") (compound_statement "{\n    local_a4 = (code *)&local_2c;\n    local_34 = local_a4;\n    pcVar16 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }\n    *(undefined4 *)((int)ppcVar18 + -4) = 0;\n    *(code **)((int)ppcVar18 + -8) = pcVar16;\n    local_a0 = &local_34;\n    *(code **)((int)ppcVar18 + -0xc) = pcVar21;\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;\n    FUN_00072b90();\n    iVar19 = 5;\n    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);\n    bVar26 = ppcVar18 == (code **)0x0;\n    ppuVar13 = local_a8 + -0x67293;\n    pcVar16 = local_34;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }\n    if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }\n    *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;\n    local_bc = FUN_00074520();\n    local_c8 = local_bc + 0xc;\n    unaff_ESI = (code *)(local_bc + 0x18);\n    pcVar16 = (code *)(local_bc + 0x24);\n    local_e0 = local_bc + 0x30;\n    iVar19 = *local_b8;\n    local_bd = '\x01';\n    local_dc = unaff_ESI;\n    local_cc = pcVar16;\n  }" ({ "{") (expression_statement "local_a4 = (code *)&local_2c;" (assignment_expression "local_a4 = (code *)&local_2c" (identifier "local_a4") (= "=") (cast_expression "(code *)&local_2c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")))) (; ";")) (expression_statement "local_34 = local_a4;" (assignment_expression "local_34 = local_a4" (identifier "local_34") (= "=") (identifier "local_a4")) (; ";")) (expression_statement "pcVar16 = (code *)0xffffffff;" (assignment_expression "pcVar16 = (code *)0xffffffff" (identifier "pcVar16") (= "=") (cast_expression "(code *)0xffffffff" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }" (if "if") (parenthesized_expression "(local_4c[0] != (code *)0x0)" (( "(") (binary_expression "local_4c[0] != (code *)0x0" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;\n      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));\n      pcVar16 = pcVar21 + sVar7;\n    }" ({ "{") (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21ef87")) (; ";")) (expression_statement "sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));" (assignment_expression "sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10))" (identifier "sVar7") (= "=") (call_expression "strlen(*(char **)((int)ppcVar18 + -0x10))" (identifier "strlen") (argument_list "(*(char **)((int)ppcVar18 + -0x10))" (( "(") (pointer_expression "*(char **)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(char **)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "pcVar16 = pcVar21 + sVar7;" (assignment_expression "pcVar16 = pcVar21 + sVar7" (identifier "pcVar16") (= "=") (binary_expression "pcVar21 + sVar7" (identifier "pcVar21") (+ "+") (identifier "sVar7"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((int)ppcVar18 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -4)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -4)" (( "(") (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(code **)((int)ppcVar18 + -8) = pcVar16;" (assignment_expression "*(code **)((int)ppcVar18 + -8) = pcVar16" (pointer_expression "*(code **)((int)ppcVar18 + -8)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "pcVar16")) (; ";")) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(code **)((int)ppcVar18 + -0xc) = pcVar21;" (assignment_expression "*(code **)((int)ppcVar18 + -0xc) = pcVar21" (pointer_expression "*(code **)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pcVar21")) (; ";")) (expression_statement "*(code ***)((int)ppcVar18 + -0x10) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x10) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21ef9f")) (; ";")) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" (identifier "FUN_00072b90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar19 = 5;" (assignment_expression "iVar19 = 5" (identifier "iVar19") (= "=") (number_literal "5")) (; ";")) (expression_statement "bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);" (assignment_expression "bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10)" (identifier "bVar24") (= "=") (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (cast_expression "(undefined1 *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")"))))) (; ";")) (expression_statement "bVar26 = ppcVar18 == (code **)0x0;" (assignment_expression "bVar26 = ppcVar18 == (code **)0x0" (identifier "bVar26") (= "=") (binary_expression "ppcVar18 == (code **)0x0" (identifier "ppcVar18") (== "==") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "ppuVar13 = local_a8 + -0x67293;" (assignment_expression "ppuVar13 = local_a8 + -0x67293" (identifier "ppuVar13") (= "=") (binary_expression "local_a8 + -0x67293" (identifier "local_a8") (+ "+") (number_literal "-0x67293"))) (; ";")) (expression_statement "pcVar16 = local_34;" (assignment_expression "pcVar16 = local_34" (identifier "pcVar16") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    } while (bVar26);" (do "do") (compound_statement "{\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n      bVar26 = *(code *)ppuVar13 == *pcVar16;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;" (assignment_expression "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16" (identifier "bVar24") (= "=") (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar16" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (< "<") (binary_expression "(byte)*pcVar16" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar16")))) (; ";")) (expression_statement "bVar26 = *(code *)ppuVar13 == *pcVar16;" (assignment_expression "bVar26 = *(code *)ppuVar13 == *pcVar16" (identifier "bVar26") (= "=") (binary_expression "*(code *)ppuVar13 == *pcVar16" (pointer_expression "*(code *)ppuVar13" (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (== "==") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")))) (; ";")) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" (identifier "ppuVar13") (= "=") (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar13 + (uint)bVar27 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar16 + (uint)bVar27 * -2" (identifier "pcVar16") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" (identifier "bVar24") (= "=") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (!bVar24) {\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n      iVar19 = 0xf;\n      pcVar16 = (code *)((int)local_a8 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }\n    }" ({ "{") (expression_statement "iVar19 = 0xf;" (assignment_expression "iVar19 = 0xf" (identifier "iVar19") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "pcVar16 = (code *)((int)local_a8 + -0x19ca46);" (assignment_expression "pcVar16 = (code *)((int)local_a8 + -0x19ca46)" (identifier "pcVar16") (= "=") (cast_expression "(code *)((int)local_a8 + -0x19ca46)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + -0x19ca46)" (( "(") (binary_expression "(int)local_a8 + -0x19ca46" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x19ca46")) () ")")))) (; ";")) (expression_statement "pcVar21 = local_34;" (assignment_expression "pcVar21 = local_34" (identifier "pcVar21") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      } while (bVar24);" (do "do") (compound_statement "{\n        unaff_ESI = pcVar16;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;\n        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;\n        bVar24 = *pcVar16 == *pcVar21;\n        pcVar16 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n      }" ({ "{") (expression_statement "unaff_ESI = pcVar16;" (assignment_expression "unaff_ESI = pcVar16" (identifier "unaff_ESI") (= "=") (identifier "pcVar16")) (; ";")) (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;" (assignment_expression "unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1" (identifier "unaff_ESI") (= "=") (binary_expression "pcVar16 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar16 + (uint)bVar27 * -2" (identifier "pcVar16") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar25 = (byte)*pcVar16 < (byte)*pcVar21;" (assignment_expression "bVar25 = (byte)*pcVar16 < (byte)*pcVar21" (identifier "bVar25") (= "=") (binary_expression "(byte)*pcVar16 < (byte)*pcVar21" (binary_expression "(byte)*pcVar16" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar16")) (< "<") (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "bVar24 = *pcVar16 == *pcVar21;" (assignment_expression "bVar24 = *pcVar16 == *pcVar21" (identifier "bVar24") (= "=") (binary_expression "*pcVar16 == *pcVar21" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (== "==") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "pcVar16 = unaff_ESI;" (assignment_expression "pcVar16 = unaff_ESI" (identifier "pcVar16") (= "=") (identifier "unaff_ESI")) (; ";")) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" (identifier "pcVar21") (= "=") (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" (identifier "pcVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }" (if "if") (parenthesized_expression "((!bVar25 && !bVar24) != bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar24) != bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" (( "(") (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (!= "!=") (identifier "bVar25")) () ")")) (compound_statement "{\n        if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }\n        goto LAB_0021e40f;\n      }" ({ "{") (if_statement "if (local_34 == local_a4) {\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }\n        else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }" (if "if") (parenthesized_expression "(local_34 == local_a4)" (( "(") (binary_expression "local_34 == local_a4" (identifier "local_34") (== "==") (identifier "local_a4")) () ")")) (compound_statement "{\n          iVar19 = *local_b8;\n          pcVar16 = local_34;\n        }" ({ "{") (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" (identifier "iVar19") (= "=") (pointer_expression "*local_b8" (* "*") (identifier "local_b8"))) (; ";")) (expression_statement "pcVar16 = local_34;" (assignment_expression "pcVar16 = local_34" (identifier "pcVar16") (= "=") (identifier "local_34")) (; ";")) (} "}")) (else_clause "else {\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }" (else "else") (compound_statement "{\n          *(code **)((int)ppcVar18 + -0x10) = local_34;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;\n          FUN_003ae080();\n          iVar19 = *local_b8;\n          pcVar16 = extraout_EDX_07;\n        }" ({ "{") (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_34;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_34" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21f073")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" (identifier "iVar19") (= "=") (pointer_expression "*local_b8" (* "*") (identifier "local_b8"))) (; ";")) (expression_statement "pcVar16 = extraout_EDX_07;" (assignment_expression "pcVar16 = extraout_EDX_07" (identifier "pcVar16") (= "=") (identifier "extraout_EDX_07")) (; ";")) (} "}")))) (goto_statement "goto LAB_0021e40f;" (goto "goto") (statement_identifier "LAB_0021e40f") (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_34 != local_a4) {\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }" (if "if") (parenthesized_expression "(local_34 != local_a4)" (( "(") (binary_expression "local_34 != local_a4" (identifier "local_34") (!= "!=") (identifier "local_a4")) () ")")) (compound_statement "{\n      *(code **)((int)ppcVar18 + -0x10) = local_34;\n      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;\n      FUN_003ae080();\n    }" ({ "{") (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_34;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_34" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21f1a9")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (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_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" (identifier "local_a0") (= "=") (pointer_expression "*(code ***)(param_2 + 0x15c)" (* "*") (cast_expression "(code ***)(param_2 + 0x15c)" (( "(") (type_descriptor "code ***" (type_identifier "code") (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 "*(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15" (pointer_expression "*(code ***)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_a0 + 0x15" (identifier "local_a0") (+ "+") (number_literal "0x15"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21f014")) (; ";")) (expression_statement "local_bc = FUN_00074520();" (assignment_expression "local_bc = FUN_00074520()" (identifier "local_bc") (= "=") (call_expression "FUN_00074520()" (identifier "FUN_00074520") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_c8 = local_bc + 0xc;" (assignment_expression "local_c8 = local_bc + 0xc" (identifier "local_c8") (= "=") (binary_expression "local_bc + 0xc" (identifier "local_bc") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "unaff_ESI = (code *)(local_bc + 0x18);" (assignment_expression "unaff_ESI = (code *)(local_bc + 0x18)" (identifier "unaff_ESI") (= "=") (cast_expression "(code *)(local_bc + 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_bc + 0x18)" (( "(") (binary_expression "local_bc + 0x18" (identifier "local_bc") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pcVar16 = (code *)(local_bc + 0x24);" (assignment_expression "pcVar16 = (code *)(local_bc + 0x24)" (identifier "pcVar16") (= "=") (cast_expression "(code *)(local_bc + 0x24)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_bc + 0x24)" (( "(") (binary_expression "local_bc + 0x24" (identifier "local_bc") (+ "+") (number_literal "0x24")) () ")")))) (; ";")) (expression_statement "local_e0 = local_bc + 0x30;" (assignment_expression "local_e0 = local_bc + 0x30" (identifier "local_e0") (= "=") (binary_expression "local_bc + 0x30" (identifier "local_bc") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "iVar19 = *local_b8;" (assignment_expression "iVar19 = *local_b8" (identifier "iVar19") (= "=") (pointer_expression "*local_b8" (* "*") (identifier "local_b8"))) (; ";")) (expression_statement "local_bd = '\x01';" (assignment_expression "local_bd = '\x01'" (identifier "local_bd") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "local_dc = unaff_ESI;" (assignment_expression "local_dc = unaff_ESI" (identifier "local_dc") (= "=") (identifier "unaff_ESI")) (; ";")) (expression_statement "local_cc = pcVar16;" (assignment_expression "local_cc = pcVar16" (identifier "local_cc") (= "=") (identifier "pcVar16")) (; ";")) (} "}")))) (if_statement "if (*(int *)(iVar19 + 8) == 0) {\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar19 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar19 + 8) == 0" (pointer_expression "*(int *)(iVar19 + 8)" (* "*") (cast_expression "(int *)(iVar19 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 8)" (( "(") (binary_expression "iVar19 + 8" (identifier "iVar19") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(code **)((int)ppcVar18 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;\n    FUN_002446e0();\n  }" ({ "{") (expression_statement "*(code **)((int)ppcVar18 + -4) = unaff_ESI;" (assignment_expression "*(code **)((int)ppcVar18 + -4) = unaff_ESI" (pointer_expression "*(code **)((int)ppcVar18 + -4)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -4)" (( "(") (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "unaff_ESI")) (; ";")) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" (* "*") (cast_expression "(undefined ***)((int)ppcVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a8 + -0x5941e" (identifier "local_a8") (+ "+") (number_literal "-0x5941e"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21f155")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_be = '\0';" (assignment_expression "local_be = '\0'" (identifier "local_be") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2)" (( "(") (binary_expression "*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar19 + 8) + 0x5934)" (* "*") (cast_expression "(int *)(*(int *)(iVar19 + 8) + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 8) + 0x5934)" (( "(") (binary_expression "*(int *)(iVar19 + 8) + 0x5934" (pointer_expression "*(int *)(iVar19 + 8)" (* "*") (cast_expression "(int *)(iVar19 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 8)" (( "(") (binary_expression "iVar19 + 8" (identifier "iVar19") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;\n    local_be = FUN_0020d670();\n    bVar24 = false;\n    bVar26 = local_be == '\0';\n    pcVar16 = extraout_EDX_06;\n    if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x10) = param_1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21eeab")) (; ";")) (expression_statement "local_be = FUN_0020d670();" (assignment_expression "local_be = FUN_0020d670()" (identifier "local_be") (= "=") (call_expression "FUN_0020d670()" (identifier "FUN_0020d670") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = local_be == '\0';" (assignment_expression "bVar26 = local_be == '\0'" (identifier "bVar26") (= "=") (binary_expression "local_be == '\0'" (identifier "local_be") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "pcVar16 = extraout_EDX_06;" (assignment_expression "pcVar16 = extraout_EDX_06" (identifier "pcVar16") (= "=") (identifier "extraout_EDX_06")) (; ";")) (if_statement "if (!bVar26) {\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n      iVar19 = 0xc;\n      local_be = '\0';\n      ppuVar13 = local_a8 + -0x66894;\n      pcVar16 = local_4c[0];\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      pcVar16 = local_4c[0];\n      if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" (identifier "iVar19") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "local_be = '\0';" (assignment_expression "local_be = '\0'" (identifier "local_be") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "ppuVar13 = local_a8 + -0x66894;" (assignment_expression "ppuVar13 = local_a8 + -0x66894" (identifier "ppuVar13") (= "=") (binary_expression "local_a8 + -0x66894" (identifier "local_a8") (+ "+") (number_literal "-0x66894"))) (; ";")) (expression_statement "pcVar16 = local_4c[0];" (assignment_expression "pcVar16 = local_4c[0]" (identifier "pcVar16") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);" (do "do") (compound_statement "{\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;\n        bVar26 = *(code *)ppuVar13 == *pcVar16;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;" (assignment_expression "bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16" (identifier "bVar24") (= "=") (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar16" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (< "<") (binary_expression "(byte)*pcVar16" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar16")))) (; ";")) (expression_statement "bVar26 = *(code *)ppuVar13 == *pcVar16;" (assignment_expression "bVar26 = *(code *)ppuVar13 == *pcVar16" (identifier "bVar26") (= "=") (binary_expression "*(code *)ppuVar13 == *pcVar16" (pointer_expression "*(code *)ppuVar13" (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (== "==") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")))) (; ";")) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" (identifier "ppuVar13") (= "=") (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar13 + (uint)bVar27 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar16 + (uint)bVar27 * -2" (identifier "pcVar16") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" (identifier "bVar24") (= "=") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (expression_statement "pcVar16 = local_4c[0];" (assignment_expression "pcVar16 = local_4c[0]" (identifier "pcVar16") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (!bVar24) {\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n        iVar19 = 0x11;\n        pcVar21 = (code *)((int)local_a8 + -0x19a243);\n        pcVar23 = local_4c[0];\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" (identifier "iVar19") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "pcVar21 = (code *)((int)local_a8 + -0x19a243);" (assignment_expression "pcVar21 = (code *)((int)local_a8 + -0x19a243)" (identifier "pcVar21") (= "=") (cast_expression "(code *)((int)local_a8 + -0x19a243)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + -0x19a243)" (( "(") (binary_expression "(int)local_a8 + -0x19a243" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x19a243")) () ")")))) (; ";")) (expression_statement "pcVar23 = local_4c[0];" (assignment_expression "pcVar23 = local_4c[0]" (identifier "pcVar23") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);" (do "do") (compound_statement "{\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;\n          bVar24 = *pcVar21 == *pcVar23;\n          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = (byte)*pcVar21 < (byte)*pcVar23;" (assignment_expression "bVar25 = (byte)*pcVar21 < (byte)*pcVar23" (identifier "bVar25") (= "=") (binary_expression "(byte)*pcVar21 < (byte)*pcVar23" (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar21")) (< "<") (binary_expression "(byte)*pcVar23" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar23")))) (; ";")) (expression_statement "bVar24 = *pcVar21 == *pcVar23;" (assignment_expression "bVar24 = *pcVar21 == *pcVar23" (identifier "bVar24") (= "=") (binary_expression "*pcVar21 == *pcVar23" (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) (== "==") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")))) (; ";")) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" (identifier "pcVar21") (= "=") (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" (identifier "pcVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar23 + (uint)bVar27 * -2" (identifier "pcVar23") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" (identifier "bVar24") (= "=") (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" (( "(") (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar24) {\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n          iVar19 = 0xc;\n          pcVar21 = (code *)((int)local_a8 + -0x19a231);\n          pcVar23 = local_4c[0];\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" (identifier "iVar19") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pcVar21 = (code *)((int)local_a8 + -0x19a231);" (assignment_expression "pcVar21 = (code *)((int)local_a8 + -0x19a231)" (identifier "pcVar21") (= "=") (cast_expression "(code *)((int)local_a8 + -0x19a231)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + -0x19a231)" (( "(") (binary_expression "(int)local_a8 + -0x19a231" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x19a231")) () ")")))) (; ";")) (expression_statement "pcVar23 = local_4c[0];" (assignment_expression "pcVar23 = local_4c[0]" (identifier "pcVar23") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);" (do "do") (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n            bVar24 = *pcVar21 == *pcVar23;\n            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar26 = (byte)*pcVar21 < (byte)*pcVar23;" (assignment_expression "bVar26 = (byte)*pcVar21 < (byte)*pcVar23" (identifier "bVar26") (= "=") (binary_expression "(byte)*pcVar21 < (byte)*pcVar23" (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar21")) (< "<") (binary_expression "(byte)*pcVar23" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar23")))) (; ";")) (expression_statement "bVar24 = *pcVar21 == *pcVar23;" (assignment_expression "bVar24 = *pcVar21 == *pcVar23" (identifier "bVar24") (= "=") (binary_expression "*pcVar21 == *pcVar23" (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) (== "==") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")))) (; ";")) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" (identifier "pcVar21") (= "=") (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" (identifier "pcVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar23 + (uint)bVar27 * -2" (identifier "pcVar23") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar26 && !bVar24) == bVar26;" (assignment_expression "bVar24 = (!bVar26 && !bVar24) == bVar26" (identifier "bVar24") (= "=") (binary_expression "(!bVar26 && !bVar24) == bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" (( "(") (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar26"))) (; ";")) (if_statement "if (!bVar24) {\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n            iVar19 = 0x11;\n            ppuVar13 = local_a8 + -0x66889;\n            pcVar21 = local_4c[0];\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }\n          }" ({ "{") (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" (identifier "iVar19") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "ppuVar13 = local_a8 + -0x66889;" (assignment_expression "ppuVar13 = local_a8 + -0x66889" (identifier "ppuVar13") (= "=") (binary_expression "local_a8 + -0x66889" (identifier "local_a8") (+ "+") (number_literal "-0x66889"))) (; ";")) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" (identifier "pcVar21") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);" (do "do") (compound_statement "{\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;\n              bVar24 = *(code *)ppuVar13 == *pcVar21;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);\n              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;" (assignment_expression "bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21" (identifier "bVar25") (= "=") (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar21" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (< "<") (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "bVar24 = *(code *)ppuVar13 == *pcVar21;" (assignment_expression "bVar24 = *(code *)ppuVar13 == *pcVar21" (identifier "bVar24") (= "=") (binary_expression "*(code *)ppuVar13 == *pcVar21" (pointer_expression "*(code *)ppuVar13" (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (== "==") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" (identifier "ppuVar13") (= "=") (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar13 + (uint)bVar27 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar27 * -2" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" (identifier "pcVar21") (= "=") (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" (identifier "pcVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" (identifier "bVar24") (= "=") (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" (( "(") (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar24) {\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n              iVar19 = 9;\n              pcVar21 = (code *)((int)local_a8 + -0x19a212);\n              pcVar23 = local_4c[0];\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_be = (!bVar26 && !bVar24) != bVar26;\n            }" ({ "{") (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" (identifier "iVar19") (= "=") (number_literal "9")) (; ";")) (expression_statement "pcVar21 = (code *)((int)local_a8 + -0x19a212);" (assignment_expression "pcVar21 = (code *)((int)local_a8 + -0x19a212)" (identifier "pcVar21") (= "=") (cast_expression "(code *)((int)local_a8 + -0x19a212)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + -0x19a212)" (( "(") (binary_expression "(int)local_a8 + -0x19a212" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x19a212")) () ")")))) (; ";")) (expression_statement "pcVar23 = local_4c[0];" (assignment_expression "pcVar23 = local_4c[0]" (identifier "pcVar23") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);" (do "do") (compound_statement "{\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;\n                bVar24 = *pcVar21 == *pcVar23;\n                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;\n                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar26 = (byte)*pcVar21 < (byte)*pcVar23;" (assignment_expression "bVar26 = (byte)*pcVar21 < (byte)*pcVar23" (identifier "bVar26") (= "=") (binary_expression "(byte)*pcVar21 < (byte)*pcVar23" (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar21")) (< "<") (binary_expression "(byte)*pcVar23" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar23")))) (; ";")) (expression_statement "bVar24 = *pcVar21 == *pcVar23;" (assignment_expression "bVar24 = *pcVar21 == *pcVar23" (identifier "bVar24") (= "=") (binary_expression "*pcVar21 == *pcVar23" (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) (== "==") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")))) (; ";")) (expression_statement "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1" (identifier "pcVar21") (= "=") (binary_expression "pcVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar27 * -2" (identifier "pcVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;" (assignment_expression "pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + (uint)bVar27 * -2 + 1" (binary_expression "pcVar23 + (uint)bVar27 * -2" (identifier "pcVar23") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "local_be = (!bVar26 && !bVar24) != bVar26;" (assignment_expression "local_be = (!bVar26 && !bVar24) != bVar26" (identifier "local_be") (= "=") (binary_expression "(!bVar26 && !bVar24) != bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" (( "(") (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (!= "!=") (identifier "bVar26"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "uVar28 = CONCAT44(pcVar16,local_a4);" (assignment_expression "uVar28 = CONCAT44(pcVar16,local_a4)" (identifier "uVar28") (= "=") (call_expression "CONCAT44(pcVar16,local_a4)" (identifier "CONCAT44") (argument_list "(pcVar16,local_a4)" (( "(") (identifier "pcVar16") (, ",") (identifier "local_a4") () ")")))) (; ";")) (if_statement "if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e8 = &local_78;\n    local_d4 = 0;\n    do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" ({ "{") (expression_statement "local_c4 = (byte *)0x0;" (assignment_expression "local_c4 = (byte *)0x0" (identifier "local_c4") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_d0 = local_94;" (assignment_expression "local_d0 = local_94" (identifier "local_d0") (= "=") (identifier "local_94")) (; ";")) (expression_statement "local_e8 = &local_78;" (assignment_expression "local_e8 = &local_78" (identifier "local_e8") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";")) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" (identifier "local_d4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);" (do "do") (compound_statement "{\n      local_a4 = (code *)uVar28;\n      uVar8 = param_7[1];\n      local_e4 = uVar8 >> 0x18;\n      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;\n      uVar8 = param_7[2];\n      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }\nLAB_0021e5a5:\n      local_a4 = (code *)uVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    }" ({ "{") (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" (identifier "local_a4") (= "=") (cast_expression "(code *)uVar28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar28"))) (; ";")) (expression_statement "uVar8 = param_7[1];" (assignment_expression "uVar8 = param_7[1]" (identifier "uVar8") (= "=") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_e4 = uVar8 >> 0x18;" (assignment_expression "local_e4 = uVar8 >> 0x18" (identifier "local_e4") (= "=") (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18"))) (; ";")) (expression_statement "uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;" (assignment_expression "uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8" (identifier "uVar15") (= "=") (binary_expression "((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8" (parenthesized_expression "((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18)" (( "(") (binary_expression "(uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "(uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" (( "(") (binary_expression "uVar8 & 0xff0000" (identifier "uVar8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8")) (| "|") (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" (( "(") (binary_expression "uVar8 & 0xff00" (identifier "uVar8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar8 << 0x18" (identifier "uVar8") (<< "<<") (number_literal "0x18"))) () ")")) (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "uVar8 = param_7[2];" (assignment_expression "uVar8 = param_7[2]" (identifier "uVar8") (= "=") (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (identifier "local_ac") (= "=") (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" (( "(") (binary_expression "uVar8 & 0xff0000" (identifier "uVar8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" (( "(") (binary_expression "uVar8 & 0xff00" (identifier "uVar8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar8 << 0x18" (identifier "uVar8") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }" (if "if") (parenthesized_expression "(uVar15 < param_11)" (( "(") (binary_expression "uVar15 < param_11" (identifier "uVar15") (< "<") (identifier "param_11")) () ")")) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }\n        iVar19 = uVar15 * 0x10 + param_12;\n        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);\n        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);\n        if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }\n        local_a4 = (code *)uVar28;\n        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }\n        local_a4 = (code *)uVar28;\n        if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (param_12 == 0) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\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 ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" (* "*") (cast_expression "(undefined ***)((int)ppcVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a8 + -0x596da" (identifier "local_a8") (+ "+") (number_literal "-0x596da"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xea")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a8 + -0x19ca36" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x19ca36"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21f0a4")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar19 = uVar15 * 0x10 + param_12;" (assignment_expression "iVar19 = uVar15 * 0x10 + param_12" (identifier "iVar19") (= "=") (binary_expression "uVar15 * 0x10 + param_12" (binary_expression "uVar15 * 0x10" (identifier "uVar15") (* "*") (number_literal "0x10")) (+ "+") (identifier "param_12"))) (; ";")) (expression_statement "local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8);" (assignment_expression "local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" (identifier "local_a4") (= "=") (cast_expression "(code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ushort)" (( "(") (identifier "ushort") () ")"))) (argument_list "(*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8)" (( "(") (binary_expression "*(ushort *)(iVar19 + 0xe) << 8 |\n                                         *(ushort *)(iVar19 + 0xe) >> 8" (binary_expression "*(ushort *)(iVar19 + 0xe) << 8" (pointer_expression "*(ushort *)(iVar19 + 0xe)" (* "*") (cast_expression "(ushort *)(iVar19 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xe)" (( "(") (binary_expression "iVar19 + 0xe" (identifier "iVar19") (+ "+") (number_literal "0xe")) () ")")))) (<< "<<") (number_literal "8")) (| "|") (binary_expression "*(ushort *)(iVar19 + 0xe) >> 8" (pointer_expression "*(ushort *)(iVar19 + 0xe)" (* "*") (cast_expression "(ushort *)(iVar19 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xe)" (( "(") (binary_expression "iVar19 + 0xe" (identifier "iVar19") (+ "+") (number_literal "0xe")) () ")")))) (>> ">>") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);" (assignment_expression "uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4)" (identifier "uVar28") (= "=") (call_expression "CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)uVar28 >> 0x20),local_a4)" (( "(") (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (identifier "local_a4") () ")")))) (; ";")) (if_statement "if (local_a4 < 0xff00) {\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }\n        else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }" (if "if") (parenthesized_expression "(local_a4 < 0xff00)" (( "(") (binary_expression "local_a4 < 0xff00" (identifier "local_a4") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\nLAB_0021e61b:\n          local_a4 = (code *)uVar28;\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }\n        }" ({ "{") (labeled_statement "LAB_0021e61b:\n          local_a4 = (code *)uVar28;" (statement_identifier "LAB_0021e61b") (: ":") (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" (identifier "local_a4") (= "=") (cast_expression "(code *)uVar28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar28"))) (; ";"))) (expression_statement "uVar8 = *(uint *)(iVar19 + 4);" (assignment_expression "uVar8 = *(uint *)(iVar19 + 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar19 + 4)" (* "*") (cast_expression "(uint *)(iVar19 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 4)" (( "(") (binary_expression "iVar19 + 4" (identifier "iVar19") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);" (assignment_expression "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" (identifier "pcVar16") (= "=") (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" (( "(") (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" (( "(") (binary_expression "uVar8 & 0xff0000" (identifier "uVar8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" (( "(") (binary_expression "uVar8 & 0xff00" (identifier "uVar8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar8 << 0x18" (identifier "uVar8") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "local_b4 = pcVar16 + local_ac;" (assignment_expression "local_b4 = pcVar16 + local_ac" (identifier "local_b4") (= "=") (binary_expression "pcVar16 + local_ac" (identifier "pcVar16") (+ "+") (identifier "local_ac"))) (; ";")) (if_statement "if (local_bd != '\0') {\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }" (if "if") (parenthesized_expression "(local_bd != '\0')" (( "(") (binary_expression "local_bd != '\0'" (identifier "local_bd") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_34 = param_4;\n            local_30 = (uint)local_a4;\n            local_a0 = &local_34;\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_bc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;\n            FUN_00073b00();\n            bVar24 = true;\n            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;\nLAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;\n            FUN_00073ca0();\n            goto LAB_0021e520;\n          }" ({ "{") (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" (identifier "local_34") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_30 = (uint)local_a4;" (assignment_expression "local_30 = (uint)local_a4" (identifier "local_30") (= "=") (cast_expression "(uint)local_a4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_a4"))) (; ";")) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_bc;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_bc" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e662")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" (identifier "bVar24") (= "=") (true "true")) (; ";")) (if_statement "if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;" (if "if") (parenthesized_expression "((*(byte *)(iVar19 + 0xc) & 0xf) != 3)" (( "(") (binary_expression "(*(byte *)(iVar19 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(iVar19 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar19 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar19 + 0xc)" (* "*") (cast_expression "(byte *)(iVar19 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xc)" (( "(") (binary_expression "iVar19 + 0xc" (identifier "iVar19") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_0021e505;" (goto "goto") (statement_identifier "LAB_0021e505") (; ";"))) (labeled_statement "LAB_0021e679:\n            *(code ***)((int)ppcVar18 + -0xc) = local_a0;" (statement_identifier "LAB_0021e679") (: ":") (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";"))) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_c8" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "local_34 = (code *)0xffffffff;" (assignment_expression "local_34 = (code *)0xffffffff" (identifier "local_34") (= "=") (cast_expression "(code *)0xffffffff" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e694")) (; ";")) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" (identifier "FUN_00073ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0021e520;" (goto "goto") (statement_identifier "LAB_0021e520") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }" (else "else") (compound_statement "{\n          if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }\n          uVar8 = *(uint *)(iVar19 + 4);\n          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);\n          local_b4 = pcVar16 + local_ac;\n          if (local_bd == '\0') goto LAB_0021e5a5;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          local_30 = 0;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;\n          FUN_00073b00();\n          bVar24 = false;\n          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;\nLAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;\n          FUN_00073ca0();\nLAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = 0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;\n          local_34 = pcVar16;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;\n          FUN_00074020();\n          uVar28 = CONCAT44(extraout_EDX,local_a4);\n          if (!bVar24) goto LAB_0021e5a5;\n        }" ({ "{") (if_statement "if (local_a4 == (code *)0xffff) {\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }" (if "if") (parenthesized_expression "(local_a4 == (code *)0xffff)" (( "(") (binary_expression "local_a4 == (code *)0xffff" (identifier "local_a4") (== "==") (cast_expression "(code *)0xffff" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffff"))) () ")")) (compound_statement "{\n            uVar8 = *(uint *)(param_4 + 0x30);\n            if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }\n            *(uint *)((int)ppcVar18 + -8) = uVar15;\n            *(code **)((int)ppcVar18 + -0xc) = param_4;\n            *(uint *)((int)ppcVar18 + -0x10) = uVar8;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;\n            uVar28 = FUN_0028b7d0();\n            goto LAB_0021e61b;\n          }" ({ "{") (expression_statement "uVar8 = *(uint *)(param_4 + 0x30);" (assignment_expression "uVar8 = *(uint *)(param_4 + 0x30)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(param_4 + 0x30)" (* "*") (cast_expression "(uint *)(param_4 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x30)" (( "(") (binary_expression "param_4 + 0x30" (identifier "param_4") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (uVar8 == 0) {\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar8 = *(uint *)param_4;\n              *(code **)((int)ppcVar18 + -0x10) = param_4;\n              pcVar16 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;\n              uVar8 = (*pcVar16)();\n              *(uint *)(param_4 + 0x30) = uVar8;\n            }" ({ "{") (expression_statement "uVar8 = *(uint *)param_4;" (assignment_expression "uVar8 = *(uint *)param_4" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)param_4" (* "*") (cast_expression "(uint *)param_4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4")))) (; ";")) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = param_4;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = param_4" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "pcVar16 = *(code **)(uVar8 + 0x6c);" (assignment_expression "pcVar16 = *(code **)(uVar8 + 0x6c)" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)(uVar8 + 0x6c)" (* "*") (cast_expression "(code **)(uVar8 + 0x6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar8 + 0x6c)" (( "(") (binary_expression "uVar8 + 0x6c" (identifier "uVar8") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21ed7e")) (; ";")) (expression_statement "uVar8 = (*pcVar16)();" (assignment_expression "uVar8 = (*pcVar16)()" (identifier "uVar8") (= "=") (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" (( "(") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(param_4 + 0x30) = uVar8;" (assignment_expression "*(uint *)(param_4 + 0x30) = uVar8" (pointer_expression "*(uint *)(param_4 + 0x30)" (* "*") (cast_expression "(uint *)(param_4 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x30)" (( "(") (binary_expression "param_4 + 0x30" (identifier "param_4") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (expression_statement "*(uint *)((int)ppcVar18 + -8) = uVar15;" (assignment_expression "*(uint *)((int)ppcVar18 + -8) = uVar15" (pointer_expression "*(uint *)((int)ppcVar18 + -8)" (* "*") (cast_expression "(uint *)((int)ppcVar18 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(code **)((int)ppcVar18 + -0xc) = param_4;" (assignment_expression "*(code **)((int)ppcVar18 + -0xc) = param_4" (pointer_expression "*(code **)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(uint *)((int)ppcVar18 + -0x10) = uVar8;" (assignment_expression "*(uint *)((int)ppcVar18 + -0x10) = uVar8" (pointer_expression "*(uint *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(uint *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e719")) (; ";")) (expression_statement "uVar28 = FUN_0028b7d0();" (assignment_expression "uVar28 = FUN_0028b7d0()" (identifier "uVar28") (= "=") (call_expression "FUN_0028b7d0()" (identifier "FUN_0028b7d0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_0021e61b;" (goto "goto") (statement_identifier "LAB_0021e61b") (; ";")) (} "}"))) (expression_statement "uVar8 = *(uint *)(iVar19 + 4);" (assignment_expression "uVar8 = *(uint *)(iVar19 + 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar19 + 4)" (* "*") (cast_expression "(uint *)(iVar19 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 4)" (( "(") (binary_expression "iVar19 + 4" (identifier "iVar19") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18);" (assignment_expression "pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" (identifier "pcVar16") (= "=") (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18)" (( "(") (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                            uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" (( "(") (binary_expression "uVar8 & 0xff0000" (identifier "uVar8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" (( "(") (binary_expression "uVar8 & 0xff00" (identifier "uVar8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar8 << 0x18" (identifier "uVar8") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "local_b4 = pcVar16 + local_ac;" (assignment_expression "local_b4 = pcVar16 + local_ac" (identifier "local_b4") (= "=") (binary_expression "pcVar16 + local_ac" (identifier "pcVar16") (+ "+") (identifier "local_ac"))) (; ";")) (if_statement "if (local_bd == '\0') goto LAB_0021e5a5;" (if "if") (parenthesized_expression "(local_bd == '\0')" (( "(") (binary_expression "local_bd == '\0'" (identifier "local_bd") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0021e5a5;" (goto "goto") (statement_identifier "LAB_0021e5a5") (; ";"))) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" (identifier "local_34") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_bc;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_bc" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e4f1")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (if_statement "if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;" (if "if") (parenthesized_expression "((*(byte *)(iVar19 + 0xc) & 0xf) == 3)" (( "(") (binary_expression "(*(byte *)(iVar19 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(iVar19 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar19 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar19 + 0xc)" (* "*") (cast_expression "(byte *)(iVar19 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xc)" (( "(") (binary_expression "iVar19 + 0xc" (identifier "iVar19") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_0021e679;" (goto "goto") (statement_identifier "LAB_0021e679") (; ";"))) (labeled_statement "LAB_0021e505:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;" (statement_identifier "LAB_0021e505") (: ":") (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";"))) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_c8" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" (identifier "local_34") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e520")) (; ";")) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" (identifier "FUN_00073ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0021e520:\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;" (statement_identifier "LAB_0021e520") (: ":") (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";"))) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_dc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_dc")) (; ";")) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" (identifier "local_2c") (= "=") (identifier "local_ac")) (; ";")) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" (identifier "local_28") (= "=") (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e550")) (; ";")) (expression_statement "local_34 = pcVar16;" (assignment_expression "local_34 = pcVar16" (identifier "local_34") (= "=") (identifier "pcVar16")) (; ";")) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" (identifier "FUN_00073e70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = *param_7;" (assignment_expression "uVar8 = *param_7" (identifier "uVar8") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "puVar3 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_cc + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(local_cc + 4)" (* "*") (cast_expression "(undefined4 **)(local_cc + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 4)" (( "(") (binary_expression "local_cc + 4" (identifier "local_cc") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);" (assignment_expression "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" (identifier "local_34") (= "=") (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" (( "(") (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" (( "(") (binary_expression "uVar8 & 0xff0000" (identifier "uVar8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" (( "(") (binary_expression "uVar8 & 0xff00" (identifier "uVar8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar8 << 0x18" (identifier "uVar8") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (if_statement "if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" (if "if") (parenthesized_expression "(puVar3 == *(undefined4 **)(local_cc + 8))" (( "(") (binary_expression "puVar3 == *(undefined4 **)(local_cc + 8)" (identifier "puVar3") (== "==") (pointer_expression "*(undefined4 **)(local_cc + 8)" (* "*") (cast_expression "(undefined4 **)(local_cc + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 8)" (( "(") (binary_expression "local_cc + 8" (identifier "local_cc") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;\n            FUN_00072a40();\n          }" ({ "{") (expression_statement "*(code ***)((int)ppcVar18 + -8) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -8) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -8)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -8)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;" (assignment_expression "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3" (pointer_expression "*(undefined4 **)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 **)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_cc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_cc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_cc")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21ed65")) (; ";")) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" (identifier "FUN_00072a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" (else "else") (compound_statement "{\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" ({ "{") (expression_statement "*puVar3 = local_34;" (assignment_expression "*puVar3 = local_34" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar3 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar3 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" (* "*") (cast_expression "(undefined4 **)(local_cc + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 4)" (( "(") (binary_expression "local_cc + 4" (identifier "local_cc") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar3 + 2" (identifier "puVar3") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" (identifier "local_54") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_e0" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_e0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e598")) (; ";")) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" (identifier "FUN_00074020") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar28 = CONCAT44(extraout_EDX,local_a4);" (assignment_expression "uVar28 = CONCAT44(extraout_EDX,local_a4)" (identifier "uVar28") (= "=") (call_expression "CONCAT44(extraout_EDX,local_a4)" (identifier "CONCAT44") (argument_list "(extraout_EDX,local_a4)" (( "(") (identifier "extraout_EDX") (, ",") (identifier "local_a4") () ")")))) (; ";")) (if_statement "if (!bVar24) goto LAB_0021e5a5;" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (goto_statement "goto LAB_0021e5a5;" (goto "goto") (statement_identifier "LAB_0021e5a5") (; ";"))) (} "}")))) (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" (identifier "local_a4") (= "=") (cast_expression "(code *)uVar28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar28"))) (; ";")) (if_statement "if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }" (if "if") (parenthesized_expression "((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1))" (( "(") (binary_expression "(local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)" (parenthesized_expression "(local_be != '\0')" (( "(") (binary_expression "local_be != '\0'" (identifier "local_be") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar19 + 0xc) & 0xf) != 1)" (( "(") (binary_expression "(*(byte *)(iVar19 + 0xc) & 0xf) != 1" (parenthesized_expression "(*(byte *)(iVar19 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar19 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar19 + 0xc)" (* "*") (cast_expression "(byte *)(iVar19 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xc)" (( "(") (binary_expression "iVar19 + 0xc" (identifier "iVar19") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }\n        }" ({ "{") (if_statement "if (*(int *)(*local_b8 + 8) == 0) {\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(*(int *)(*local_b8 + 8) == 0)" (( "(") (binary_expression "*(int *)(*local_b8 + 8) == 0" (pointer_expression "*(int *)(*local_b8 + 8)" (* "*") (cast_expression "(int *)(*local_b8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_b8 + 8)" (( "(") (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" (* "*") (identifier "local_b8")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);\n            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);" (assignment_expression "*(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20)" (pointer_expression "*(int *)((int)ppcVar18 + -4)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -4)" (( "(") (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" (* "*") (cast_expression "(undefined ***)((int)ppcVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a8 + -0x5941e" (identifier "local_a8") (+ "+") (number_literal "-0x5941e"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21f11d")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" (* "*") (cast_expression "(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*local_b8 + 8) + 0x1a25)" (( "(") (binary_expression "*(int *)(*local_b8 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_b8 + 8)" (* "*") (cast_expression "(int *)(*local_b8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_b8 + 8)" (( "(") (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" (* "*") (identifier "local_b8")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }\n          }" ({ "{") (if_statement "if (local_e4 - 4 < 0x37) {\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }" (if "if") (parenthesized_expression "(local_e4 - 4 < 0x37)" (( "(") (binary_expression "local_e4 - 4 < 0x37" (binary_expression "local_e4 - 4" (identifier "local_e4") (- "-") (number_literal "4")) (< "<") (number_literal "0x37")) () ")")) (compound_statement "{\n                    \n                    \n              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();\n              return;\n            }" ({ "{") (expression_statement "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();" (call_expression "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))()" (parenthesized_expression "(*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))" (( "(") (pointer_expression "*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8)" (* "*") (cast_expression "(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8[local_e4 - 0x59816] + (int)local_a8)" (( "(") (binary_expression "local_a8[local_e4 - 0x59816] + (int)local_a8" (subscript_expression "local_a8[local_e4 - 0x59816]" (identifier "local_a8") ([ "[") (binary_expression "local_e4 - 0x59816" (identifier "local_e4") (- "-") (number_literal "0x59816")) (] "]")) (+ "+") (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8"))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }" (else "else") (compound_statement "{\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_6c = param_4;\n            uVar2 = *(ushort *)(iVar19 + 0xe);\n            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);\n            *(code ****)((int)ppcVar18 + -0x14) = &local_84;\n            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;\n            local_84 = local_a0 + 0xd;\n            *(code ***)((int)ppcVar18 + -0x1c) = local_84;\n            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;\n            FUN_00074280();\n            uVar28 = CONCAT44(extraout_EDX_04,local_a4);\n            ppcVar18 = (code **)((int)ppcVar18 + -4);\n          }" ({ "{") (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" (identifier "local_a0") (= "=") (pointer_expression "*(code ***)(param_2 + 0x15c)" (* "*") (cast_expression "(code ***)(param_2 + 0x15c)" (( "(") (type_descriptor "code ***" (type_identifier "code") (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 "local_6c = param_4;" (assignment_expression "local_6c = param_4" (identifier "local_6c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uVar2 = *(ushort *)(iVar19 + 0xe);" (assignment_expression "uVar2 = *(ushort *)(iVar19 + 0xe)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(iVar19 + 0xe)" (* "*") (cast_expression "(ushort *)(iVar19 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xe)" (( "(") (binary_expression "iVar19 + 0xe" (identifier "iVar19") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);" (assignment_expression "local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8)" (identifier "local_68") (= "=") (call_expression "(uint)(ushort)(uVar2 << 8 | uVar2 >> 8)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ushort)" (( "(") (identifier "ushort") () ")"))) (argument_list "(uVar2 << 8 | uVar2 >> 8)" (( "(") (binary_expression "uVar2 << 8 | uVar2 >> 8" (binary_expression "uVar2 << 8" (identifier "uVar2") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar2 >> 8" (identifier "uVar2") (>> ">>") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "*(code ****)((int)ppcVar18 + -0x14) = &local_84;" (assignment_expression "*(code ****)((int)ppcVar18 + -0x14) = &local_84" (pointer_expression "*(code ****)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(code ****)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "code ****" (type_identifier "code") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (; ";")) (expression_statement "*(code ***)((int)ppcVar18 + -0x18) = &local_6c;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x18) = &local_6c" (pointer_expression "*(code ***)((int)ppcVar18 + -0x18)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0x18)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x18)" (( "(") (binary_expression "(int)ppcVar18 + -0x18" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "local_84 = local_a0 + 0xd;" (assignment_expression "local_84 = local_a0 + 0xd" (identifier "local_84") (= "=") (binary_expression "local_a0 + 0xd" (identifier "local_a0") (+ "+") (number_literal "0xd"))) (; ";")) (expression_statement "*(code ***)((int)ppcVar18 + -0x1c) = local_84;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x1c) = local_84" (pointer_expression "*(code ***)((int)ppcVar18 + -0x1c)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0x1c)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x1c)" (( "(") (binary_expression "(int)ppcVar18 + -0x1c" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)ppcVar18 + -0x20)" (* "*") (cast_expression "(undefined1 **)((int)ppcVar18 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x20)" (( "(") (binary_expression "(int)ppcVar18 + -0x20" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x24)" (( "(") (binary_expression "(int)ppcVar18 + -0x24" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x21ec66")) (; ";")) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" (identifier "FUN_00074280") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar28 = CONCAT44(extraout_EDX_04,local_a4);" (assignment_expression "uVar28 = CONCAT44(extraout_EDX_04,local_a4)" (identifier "uVar28") (= "=") (call_expression "CONCAT44(extraout_EDX_04,local_a4)" (identifier "CONCAT44") (argument_list "(extraout_EDX_04,local_a4)" (( "(") (identifier "extraout_EDX_04") (, ",") (identifier "local_a4") () ")")))) (; ";")) (expression_statement "ppcVar18 = (code **)((int)ppcVar18 + -4);" (assignment_expression "ppcVar18 = (code **)((int)ppcVar18 + -4)" (identifier "ppcVar18") (= "=") (cast_expression "(code **)((int)ppcVar18 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -4)" (( "(") (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" (identifier "local_a4") (= "=") (cast_expression "(code *)uVar28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar28"))) (; ";")) (if_statement "if ((code *)param_5 != local_a4) {\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "((code *)param_5 != local_a4)" (( "(") (binary_expression "(code *)param_5 != local_a4" (cast_expression "(code *)param_5" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_5")) (!= "!=") (identifier "local_a4")) () ")")) (compound_statement "{\n          local_b0 = param_4;\n          puVar17 = (undefined1 *)ppcVar18;\nLAB_0021e8f0:\n          local_a4 = (code *)uVar28;\n          if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }\n          ppcVar18 = (code **)puVar17;\n          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "local_b0 = param_4;" (assignment_expression "local_b0 = param_4" (identifier "local_b0") (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar17 = (undefined1 *)ppcVar18;" (assignment_expression "puVar17 = (undefined1 *)ppcVar18" (identifier "puVar17") (= "=") (cast_expression "(undefined1 *)ppcVar18" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppcVar18"))) (; ";")) (labeled_statement "LAB_0021e8f0:\n          local_a4 = (code *)uVar28;" (statement_identifier "LAB_0021e8f0") (: ":") (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" (identifier "local_a4") (= "=") (cast_expression "(code *)uVar28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar28"))) (; ";"))) (if_statement "if (*(int *)(*local_b8 + 8) == 0) {\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(*(int *)(*local_b8 + 8) == 0)" (( "(") (binary_expression "*(int *)(*local_b8 + 8) == 0" (pointer_expression "*(int *)(*local_b8 + 8)" (* "*") (cast_expression "(int *)(*local_b8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_b8 + 8)" (( "(") (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" (* "*") (identifier "local_b8")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;\n            *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)(puVar17 + -8)" (* "*") (cast_expression "(undefined ***)(puVar17 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a8 + -0x5941e" (identifier "local_a8") (+ "+") (number_literal "-0x5941e"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x21f0c2" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21f0c2")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "ppcVar18 = (code **)puVar17;" (assignment_expression "ppcVar18 = (code **)puVar17" (identifier "ppcVar18") (= "=") (cast_expression "(code **)puVar17" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar17"))) (; ";")) (if_statement "if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x18b1)" (* "*") (cast_expression "(char *)(*(int *)(*local_b8 + 8) + 0x18b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*local_b8 + 8) + 0x18b1)" (( "(") (binary_expression "*(int *)(*local_b8 + 8) + 0x18b1" (pointer_expression "*(int *)(*local_b8 + 8)" (* "*") (cast_expression "(int *)(*local_b8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_b8 + 8)" (( "(") (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" (* "*") (identifier "local_b8")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x18b1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_5c = param_4;\n            iVar19 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a4;\n            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar19;\n            if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar17 + -0xc) = 1;\n            *(undefined4 *)(puVar17 + -0x10) = 0;\n            *(code ***)(puVar17 + -0x14) = local_e8;\n            *(code ***)(puVar17 + -0x18) = &local_54;\n            *(code **)(puVar17 + -0x1c) = local_78;\n            *(undefined1 **)(puVar17 + -0x20) = local_d0;\n            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;\n            FUN_00074340();\n            piVar6 = *(int **)(*local_b8 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);\n            if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar4 = local_c4;\n            uVar28 = CONCAT44(ppuVar13,local_a4);\n            ppcVar18 = (code **)(puVar17 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -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 "iVar19 = *(int *)(param_2 + 0x158) + 0x14;" (assignment_expression "iVar19 = *(int *)(param_2 + 0x158) + 0x14" (identifier "iVar19") (= "=") (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_b0;" (assignment_expression "local_54 = local_b0" (identifier "local_54") (= "=") (identifier "local_b0")) (; ";")) (expression_statement "local_50 = local_a4;" (assignment_expression "local_50 = local_a4" (identifier "local_50") (= "=") (identifier "local_a4")) (; ";")) (expression_statement "iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18)" (identifier "iVar5") (= "=") (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 "iVar9 = iVar19;" (assignment_expression "iVar9 = iVar19" (identifier "iVar9") (= "=") (identifier "iVar19")) (; ";")) (if_statement "if (iVar5 == 0) {\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0021e980:\n              local_74 = &local_5c;\n              *(code ****)(puVar17 + -0x10) = &local_74;\n              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;\n              FUN_00212060();\n              iVar10 = local_98;\n            }" ({ "{") (labeled_statement "LAB_0021e980:\n              local_74 = &local_5c;" (statement_identifier "LAB_0021e980") (: ":") (expression_statement "local_74 = &local_5c;" (assignment_expression "local_74 = &local_5c" (identifier "local_74") (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";"))) (expression_statement "*(code ****)(puVar17 + -0x10) = &local_74;" (assignment_expression "*(code ****)(puVar17 + -0x10) = &local_74" (pointer_expression "*(code ****)(puVar17 + -0x10)" (* "*") (cast_expression "(code ****)(puVar17 + -0x10)" (( "(") (type_descriptor "code ****" (type_identifier "code") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_74" (& "&") (identifier "local_74"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x21e99b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x21e99b" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e99b")) (; ";")) (expression_statement "FUN_00212060();" (call_expression "FUN_00212060()" (identifier "FUN_00212060") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" (identifier "iVar10") (= "=") (identifier "local_98")) (; ";")) (} "}")) (else_clause "else {\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }" (else "else") (compound_statement "{\n              do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);\nLAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;\n            }" ({ "{") (do_statement "do {\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              } while (*piVar6 != 0);" (do "do") (compound_statement "{\n                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }\n                piVar6 = (int *)(iVar10 + 0xc);\n                iVar5 = *piVar6;\n                iVar10 = iVar9;\n              }" ({ "{") (while_statement "while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }" (while "while") (parenthesized_expression "((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))))" (( "(") (parenthesized_expression "(iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))))" (( "(") (comma_expression "iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar5" (identifier "iVar10") (= "=") (identifier "iVar5")) (, ",") (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" (identifier "param_4") (<= "<=") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (&& "&&") (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))))" (( "(") (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14)))" (( "(") (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" (identifier "param_4") (!= "!=") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (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 "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                  iVar5 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;\n                }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(int *)(iVar10 + 8)" (identifier "iVar5") (= "=") (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_0021e96a;" (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_0021e96a;" (goto "goto") (statement_identifier "LAB_0021e96a") (; ";"))) (} "}"))) (expression_statement "piVar6 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar6 = (int *)(iVar10 + 0xc)" (identifier "piVar6") (= "=") (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 "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" (identifier "iVar5") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" (identifier "iVar10") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar6 != 0)" (( "(") (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_0021e96a:\n              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;" (statement_identifier "LAB_0021e96a") (: ":") (if_statement "if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))\n              goto LAB_0021e980;" (if "if") (parenthesized_expression "(((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))" (( "(") (binary_expression "((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))))" (parenthesized_expression "((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10)))" (( "(") (binary_expression "(iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar19 == iVar10)" (( "(") (binary_expression "iVar19 == iVar10" (identifier "iVar19") (== "==") (identifier "iVar10")) () ")")) (|| "||") (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" (( "(") (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" (identifier "param_4") (< "<") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))))" (( "(") (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))" (( "(") (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" (identifier "param_4") (== "==") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (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 "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0021e980;" (goto "goto") (statement_identifier "LAB_0021e980") (; ";")))) (} "}")))) (expression_statement "local_78 = (code *)(iVar10 + 0x18);" (assignment_expression "local_78 = (code *)(iVar10 + 0x18)" (identifier "local_78") (= "=") (cast_expression "(code *)(iVar10 + 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(code ***)(puVar17 + -0x14) = local_e8;" (assignment_expression "*(code ***)(puVar17 + -0x14) = local_e8" (pointer_expression "*(code ***)(puVar17 + -0x14)" (* "*") (cast_expression "(code ***)(puVar17 + -0x14)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_e8")) (; ";")) (expression_statement "*(code ***)(puVar17 + -0x18) = &local_54;" (assignment_expression "*(code ***)(puVar17 + -0x18) = &local_54" (pointer_expression "*(code ***)(puVar17 + -0x18)" (* "*") (cast_expression "(code ***)(puVar17 + -0x18)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(code **)(puVar17 + -0x1c) = local_78;" (assignment_expression "*(code **)(puVar17 + -0x1c) = local_78" (pointer_expression "*(code **)(puVar17 + -0x1c)" (* "*") (cast_expression "(code **)(puVar17 + -0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x1c)" (( "(") (binary_expression "puVar17 + -0x1c" (identifier "puVar17") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_78")) (; ";")) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar17 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x21e9c7" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x24)" (( "(") (binary_expression "puVar17 + -0x24" (identifier "puVar17") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x21e9c7")) (; ";")) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" (identifier "FUN_00074340") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(*local_b8 + 0xc);" (assignment_expression "piVar6 = *(int **)(*local_b8 + 0xc)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(*local_b8 + 0xc)" (* "*") (cast_expression "(int **)(*local_b8 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_b8 + 0xc)" (( "(") (binary_expression "*local_b8 + 0xc" (pointer_expression "*local_b8" (* "*") (identifier "local_b8")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar6 == (int *)0x0) {\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }" (if "if") (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;\n              *(undefined4 *)(puVar17 + -0x10) = 0x73;\n              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;\n              FUN_002446e0();\n            }" ({ "{") (expression_statement "*(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;" (assignment_expression "*(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664" (pointer_expression "*(undefined ***)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined ***)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "local_a8 + -0x59664" (identifier "local_a8") (+ "+") (number_literal "-0x59664"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x73")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x14)" (* "*") (cast_expression "(int *)(puVar17 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21f101;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21f101" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x21f101")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "ppuVar13 = *(undefined ***)(*piVar6 + 0x104);" (assignment_expression "ppuVar13 = *(undefined ***)(*piVar6 + 0x104)" (identifier "ppuVar13") (= "=") (pointer_expression "*(undefined ***)(*piVar6 + 0x104)" (* "*") (cast_expression "(undefined ***)(*piVar6 + 0x104)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar6 + 0x104)" (( "(") (binary_expression "*piVar6 + 0x104" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (number_literal "0x104")) () ")"))))) (; ";")) (if_statement "if (ppuVar13 != local_a8 + -0x1510f0) {\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" (if "if") (parenthesized_expression "(ppuVar13 != local_a8 + -0x1510f0)" (( "(") (binary_expression "ppuVar13 != local_a8 + -0x1510f0" (identifier "ppuVar13") (!= "!=") (binary_expression "local_a8 + -0x1510f0" (identifier "local_a8") (+ "+") (number_literal "-0x1510f0"))) () ")")) (compound_statement "{\n              *(code **)(puVar17 + -0xc) = local_b4;\n              *(code **)(puVar17 + -0x10) = local_a4;\n              *(code **)(puVar17 + -0x14) = local_b0;\n              *(uint *)(puVar17 + -0x18) = param_5;\n              *(code **)(puVar17 + -0x1c) = param_4;\n              *(int *)(puVar17 + -0x20) = param_2;\n              *(int **)(puVar17 + -0x24) = piVar6;\n              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" ({ "{") (expression_statement "*(code **)(puVar17 + -0xc) = local_b4;" (assignment_expression "*(code **)(puVar17 + -0xc) = local_b4" (pointer_expression "*(code **)(puVar17 + -0xc)" (* "*") (cast_expression "(code **)(puVar17 + -0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_b4")) (; ";")) (expression_statement "*(code **)(puVar17 + -0x10) = local_a4;" (assignment_expression "*(code **)(puVar17 + -0x10) = local_a4" (pointer_expression "*(code **)(puVar17 + -0x10)" (* "*") (cast_expression "(code **)(puVar17 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(code **)(puVar17 + -0x14) = local_b0;" (assignment_expression "*(code **)(puVar17 + -0x14) = local_b0" (pointer_expression "*(code **)(puVar17 + -0x14)" (* "*") (cast_expression "(code **)(puVar17 + -0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(uint *)(puVar17 + -0x18) = param_5;" (assignment_expression "*(uint *)(puVar17 + -0x18) = param_5" (pointer_expression "*(uint *)(puVar17 + -0x18)" (* "*") (cast_expression "(uint *)(puVar17 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(code **)(puVar17 + -0x1c) = param_4;" (assignment_expression "*(code **)(puVar17 + -0x1c) = param_4" (pointer_expression "*(code **)(puVar17 + -0x1c)" (* "*") (cast_expression "(code **)(puVar17 + -0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x1c)" (( "(") (binary_expression "puVar17 + -0x1c" (identifier "puVar17") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar17 + -0x20) = param_2" (pointer_expression "*(int *)(puVar17 + -0x20)" (* "*") (cast_expression "(int *)(puVar17 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int **)(puVar17 + -0x24) = piVar6;" (assignment_expression "*(int **)(puVar17 + -0x24) = piVar6" (pointer_expression "*(int **)(puVar17 + -0x24)" (* "*") (cast_expression "(int **)(puVar17 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x24)" (( "(") (binary_expression "puVar17 + -0x24" (identifier "puVar17") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar6")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x28) = 0x21eb71;" (assignment_expression "*(undefined4 *)(puVar17 + -0x28) = 0x21eb71" (pointer_expression "*(undefined4 *)(puVar17 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x28)" (( "(") (binary_expression "puVar17 + -0x28" (identifier "puVar17") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (number_literal "0x21eb71")) (; ";")) (expression_statement "(*(code *)ppuVar13)();" (call_expression "(*(code *)ppuVar13)()" (parenthesized_expression "(*(code *)ppuVar13)" (( "(") (pointer_expression "*(code *)ppuVar13" (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar13 = extraout_EDX_02;" (assignment_expression "ppuVar13 = extraout_EDX_02" (identifier "ppuVar13") (= "=") (identifier "extraout_EDX_02")) (; ";")) (} "}"))) (expression_statement "pbVar4 = local_c4;" (assignment_expression "pbVar4 = local_c4" (identifier "pbVar4") (= "=") (identifier "local_c4")) (; ";")) (expression_statement "uVar28 = CONCAT44(ppuVar13,local_a4);" (assignment_expression "uVar28 = CONCAT44(ppuVar13,local_a4)" (identifier "uVar28") (= "=") (call_expression "CONCAT44(ppuVar13,local_a4)" (identifier "CONCAT44") (argument_list "(ppuVar13,local_a4)" (( "(") (identifier "ppuVar13") (, ",") (identifier "local_a4") () ")")))) (; ";")) (expression_statement "ppcVar18 = (code **)(puVar17 + -4);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -4)" (identifier "ppcVar18") (= "=") (cast_expression "(code **)(puVar17 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -4)" (( "(") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (if_statement "if (local_c4 != (byte *)0x0) {\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(local_c4 != (byte *)0x0)" (( "(") (binary_expression "local_c4 != (byte *)0x0" (identifier "local_c4") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              local_a4 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar19 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar17 + -0x14) = local_c4;\n              local_34 = local_a4;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;\n              sVar7 = strlen(*(char **)(puVar17 + -0x14));\n              ppcVar18 = local_a0;\n              *(undefined4 *)(puVar17 + -8) = 0;\n              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;\n              *(byte **)(puVar17 + -0x10) = pbVar4;\n              *(code ***)(puVar17 + -0x14) = local_a0;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;\n              FUN_00072b90();\n              *(code ***)(puVar17 + -0xc) = ppcVar18;\n              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;\n              *(code ***)(puVar17 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;\n              FUN_00094bd0();\n              pcVar16 = local_9c;\n              if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }\n              ppcVar18 = (code **)(puVar17 + -8);\n              iVar19 = *(int *)(param_2 + 0x158);\n              uVar28 = CONCAT44(iVar19,local_a4);\n              if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }\n            }" ({ "{") (expression_statement "local_a4 = (code *)&local_2c;" (assignment_expression "local_a4 = (code *)&local_2c" (identifier "local_a4") (= "=") (cast_expression "(code *)&local_2c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")))) (; ";")) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "iVar19 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar19 = *(int *)(param_2 + 0x158)" (identifier "iVar19") (= "=") (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 **)(puVar17 + -0x14) = local_c4;" (assignment_expression "*(byte **)(puVar17 + -0x14) = local_c4" (pointer_expression "*(byte **)(puVar17 + -0x14)" (* "*") (cast_expression "(byte **)(puVar17 + -0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "local_34 = local_a4;" (assignment_expression "local_34 = local_a4" (identifier "local_34") (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21ea36;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21ea36" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x21ea36")) (; ";")) (expression_statement "sVar7 = strlen(*(char **)(puVar17 + -0x14));" (assignment_expression "sVar7 = strlen(*(char **)(puVar17 + -0x14))" (identifier "sVar7") (= "=") (call_expression "strlen(*(char **)(puVar17 + -0x14))" (identifier "strlen") (argument_list "(*(char **)(puVar17 + -0x14))" (( "(") (pointer_expression "*(char **)(puVar17 + -0x14)" (* "*") (cast_expression "(char **)(puVar17 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "ppcVar18 = local_a0;" (assignment_expression "ppcVar18 = local_a0" (identifier "ppcVar18") (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;" (assignment_expression "*(byte **)(puVar17 + -0xc) = pbVar4 + sVar7" (pointer_expression "*(byte **)(puVar17 + -0xc)" (* "*") (cast_expression "(byte **)(puVar17 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "pbVar4 + sVar7" (identifier "pbVar4") (+ "+") (identifier "sVar7"))) (; ";")) (expression_statement "*(byte **)(puVar17 + -0x10) = pbVar4;" (assignment_expression "*(byte **)(puVar17 + -0x10) = pbVar4" (pointer_expression "*(byte **)(puVar17 + -0x10)" (* "*") (cast_expression "(byte **)(puVar17 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "*(code ***)(puVar17 + -0x14) = local_a0;" (assignment_expression "*(code ***)(puVar17 + -0x14) = local_a0" (pointer_expression "*(code ***)(puVar17 + -0x14)" (* "*") (cast_expression "(code ***)(puVar17 + -0x14)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21ea4b" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x21ea4b")) (; ";")) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" (identifier "FUN_00072b90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(code ***)(puVar17 + -0xc) = ppcVar18;" (assignment_expression "*(code ***)(puVar17 + -0xc) = ppcVar18" (pointer_expression "*(code ***)(puVar17 + -0xc)" (* "*") (cast_expression "(code ***)(puVar17 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "ppcVar18")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = iVar19 + 0x44;" (assignment_expression "*(int *)(puVar17 + -0x10) = iVar19 + 0x44" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "iVar19 + 0x44" (identifier "iVar19") (+ "+") (number_literal "0x44"))) (; ";")) (expression_statement "*(code ***)(puVar17 + -0x14) = &local_9c;" (assignment_expression "*(code ***)(puVar17 + -0x14) = &local_9c" (pointer_expression "*(code ***)(puVar17 + -0x14)" (* "*") (cast_expression "(code ***)(puVar17 + -0x14)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_9c" (& "&") (identifier "local_9c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x18) = 0x21ea5f" (pointer_expression "*(undefined4 *)(puVar17 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x21ea5f")) (; ";")) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" (identifier "FUN_00094bd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar16 = local_9c;" (assignment_expression "pcVar16 = local_9c" (identifier "pcVar16") (= "=") (identifier "local_9c")) (; ";")) (if_statement "if (local_34 != local_a4) {\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }" (if "if") (parenthesized_expression "(local_34 != local_a4)" (( "(") (binary_expression "local_34 != local_a4" (identifier "local_34") (!= "!=") (identifier "local_a4")) () ")")) (compound_statement "{\n                *(code **)(puVar17 + -0x18) = local_34;\n                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;\n                FUN_003ae080();\n              }" ({ "{") (expression_statement "*(code **)(puVar17 + -0x18) = local_34;" (assignment_expression "*(code **)(puVar17 + -0x18) = local_34" (pointer_expression "*(code **)(puVar17 + -0x18)" (* "*") (cast_expression "(code **)(puVar17 + -0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;" (assignment_expression "*(undefined4 *)(puVar17 + -0x1c) = 0x21ea82" (pointer_expression "*(undefined4 *)(puVar17 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x1c)" (( "(") (binary_expression "puVar17 + -0x1c" (identifier "puVar17") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x21ea82")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "ppcVar18 = (code **)(puVar17 + -8);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -8)" (identifier "ppcVar18") (= "=") (cast_expression "(code **)(puVar17 + -8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar19 = *(int *)(param_2 + 0x158)" (identifier "iVar19") (= "=") (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 "uVar28 = CONCAT44(iVar19,local_a4);" (assignment_expression "uVar28 = CONCAT44(iVar19,local_a4)" (identifier "uVar28") (= "=") (call_expression "CONCAT44(iVar19,local_a4)" (identifier "CONCAT44") (argument_list "(iVar19,local_a4)" (( "(") (identifier "iVar19") (, ",") (identifier "local_a4") () ")")))) (; ";")) (if_statement "if (pcVar16 != (code *)(iVar19 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }\n              }" (if "if") (parenthesized_expression "(pcVar16 != (code *)(iVar19 + 0x48))" (( "(") (binary_expression "pcVar16 != (code *)(iVar19 + 0x48)" (identifier "pcVar16") (!= "!=") (cast_expression "(code *)(iVar19 + 0x48)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x48)" (( "(") (binary_expression "iVar19 + 0x48" (identifier "iVar19") (+ "+") (number_literal "0x48")) () ")")))) () ")")) (compound_statement "{\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar5 = *(int *)(iVar19 + 0x18);\n                iVar9 = iVar19 + 0x14;\n                if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }\n                uVar28 = CONCAT44(iVar19,local_a4);\n                ppcVar18 = (code **)(puVar17 + -8);\n                puVar17 = puVar17 + -8;\n                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -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 "iVar5 = *(int *)(iVar19 + 0x18);" (assignment_expression "iVar5 = *(int *)(iVar19 + 0x18)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar19 + 0x18)" (* "*") (cast_expression "(int *)(iVar19 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x18)" (( "(") (binary_expression "iVar19 + 0x18" (identifier "iVar19") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar9 = iVar19 + 0x14;" (assignment_expression "iVar9 = iVar19 + 0x14" (identifier "iVar9") (= "=") (binary_expression "iVar19 + 0x14" (identifier "iVar19") (+ "+") (number_literal "0x14"))) (; ";")) (if_statement "if (*(int *)(iVar19 + 0x18) == 0) {\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar19 + 0x18) == 0)" (( "(") (binary_expression "*(int *)(iVar19 + 0x18) == 0" (pointer_expression "*(int *)(iVar19 + 0x18)" (* "*") (cast_expression "(int *)(iVar19 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x18)" (( "(") (binary_expression "iVar19 + 0x18" (identifier "iVar19") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;\n                  FUN_00212060();\n                  iVar10 = local_98;\n                  iVar19 = extraout_EDX_03;\n                }" ({ "{") (labeled_statement "LAB_0021ebb8:\n                  *(code ****)(puVar17 + -0x18) = &local_70;" (statement_identifier "LAB_0021ebb8") (: ":") (expression_statement "*(code ****)(puVar17 + -0x18) = &local_70;" (assignment_expression "*(code ****)(puVar17 + -0x18) = &local_70" (pointer_expression "*(code ****)(puVar17 + -0x18)" (* "*") (cast_expression "(code ****)(puVar17 + -0x18)" (( "(") (type_descriptor "code ****" (type_identifier "code") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_70" (& "&") (identifier "local_70"))) (; ";"))) (expression_statement "local_70 = local_a0;" (assignment_expression "local_70 = local_a0" (identifier "local_70") (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;" (assignment_expression "*(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6" (pointer_expression "*(undefined4 *)(puVar17 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x1c)" (( "(") (binary_expression "puVar17 + -0x1c" (identifier "puVar17") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x21ebd6")) (; ";")) (expression_statement "FUN_00212060();" (call_expression "FUN_00212060()" (identifier "FUN_00212060") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" (identifier "iVar10") (= "=") (identifier "local_98")) (; ";")) (expression_statement "iVar19 = extraout_EDX_03;" (assignment_expression "iVar19 = extraout_EDX_03" (identifier "iVar19") (= "=") (identifier "extraout_EDX_03")) (; ";")) (} "}")) (else_clause "else {\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }" (else "else") (compound_statement "{\n                  do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);\nLAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;\n                }" ({ "{") (do_statement "do {\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  } while (*piVar6 != 0);" (do "do") (compound_statement "{\n                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }\n                    piVar6 = (int *)(iVar10 + 0xc);\n                    iVar5 = *piVar6;\n                    iVar10 = iVar9;\n                  }" ({ "{") (while_statement "while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }" (while "while") (parenthesized_expression "((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))))" (( "(") (parenthesized_expression "(iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))))" (( "(") (comma_expression "iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar5" (identifier "iVar10") (= "=") (identifier "iVar5")) (, ",") (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" (identifier "param_4") (<= "<=") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (&& "&&") (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))))" (( "(") (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14)))" (( "(") (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" (identifier "param_4") (!= "!=") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (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 "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                      iVar5 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;\n                    }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(int *)(iVar10 + 8)" (identifier "iVar5") (= "=") (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_0021eae2;" (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_0021eae2;" (goto "goto") (statement_identifier "LAB_0021eae2") (; ";"))) (} "}"))) (expression_statement "piVar6 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar6 = (int *)(iVar10 + 0xc)" (identifier "piVar6") (= "=") (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 "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" (identifier "iVar5") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" (identifier "iVar10") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar6 != 0)" (( "(") (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_0021eae2:\n                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;" (statement_identifier "LAB_0021eae2") (: ":") (if_statement "if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )) goto LAB_0021ebb8;" (if "if") (parenthesized_expression "(((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     ))" (( "(") (binary_expression "((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )" (parenthesized_expression "((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10)))" (( "(") (binary_expression "(iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar10 == iVar19 + 0x14)" (( "(") (binary_expression "iVar10 == iVar19 + 0x14" (identifier "iVar10") (== "==") (binary_expression "iVar19 + 0x14" (identifier "iVar19") (+ "+") (number_literal "0x14"))) () ")")) (|| "||") (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" (( "(") (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" (identifier "param_4") (< "<") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))\n                     )" (( "(") (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))" (( "(") (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" (identifier "param_4") (== "==") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (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 "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0021ebb8;" (goto "goto") (statement_identifier "LAB_0021ebb8") (; ";")))) (} "}")))) (expression_statement "uVar28 = CONCAT44(iVar19,local_a4);" (assignment_expression "uVar28 = CONCAT44(iVar19,local_a4)" (identifier "uVar28") (= "=") (call_expression "CONCAT44(iVar19,local_a4)" (identifier "CONCAT44") (argument_list "(iVar19,local_a4)" (( "(") (identifier "iVar19") (, ",") (identifier "local_a4") () ")")))) (; ";")) (expression_statement "ppcVar18 = (code **)(puVar17 + -8);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -8)" (identifier "ppcVar18") (= "=") (cast_expression "(code **)(puVar17 + -8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "puVar17 = puVar17 + -8;" (assignment_expression "puVar17 = puVar17 + -8" (identifier "puVar17") (= "=") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8"))) (; ";")) (for_statement "for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;\n                    puVar3 = (undefined4 *)*puVar3) {\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }" (for "for") (( "(") (assignment_expression "puVar3 = *(undefined4 **)(pcVar16 + 0x30)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(pcVar16 + 0x30)" (* "*") (cast_expression "(undefined4 **)(pcVar16 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x30)" (( "(") (binary_expression "pcVar16 + 0x30" (identifier "pcVar16") (+ "+") (number_literal "0x30")) () ")"))))) (; ";") (binary_expression "puVar3 != (undefined4 *)0x0" (identifier "puVar3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar3 = (undefined4 *)*puVar3" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)*puVar3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")))) () ")") (compound_statement "{\n                  *(undefined4 *)(puVar17 + -0xc) = 1;\n                  *(undefined4 *)(puVar17 + -0x10) = 0;\n                  *(code ***)(puVar17 + -0x14) = &local_7c;\n                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;\n                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar17 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;\n                  local_7c = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);\n                  ppcVar18 = (code **)(puVar17 + -4);\n                  puVar17 = puVar17 + -4;\n                }" ({ "{") (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(code ***)(puVar17 + -0x14) = &local_7c;" (assignment_expression "*(code ***)(puVar17 + -0x14) = &local_7c" (pointer_expression "*(code ***)(puVar17 + -0x14)" (* "*") (cast_expression "(code ***)(puVar17 + -0x14)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (; ";")) (expression_statement "*(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;" (assignment_expression "*(undefined4 **)(puVar17 + -0x18) = puVar3 + 1" (pointer_expression "*(undefined4 **)(puVar17 + -0x18)" (* "*") (cast_expression "(undefined4 **)(puVar17 + -0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar3 + 1" (identifier "puVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);" (assignment_expression "*(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18)" (pointer_expression "*(code **)(puVar17 + -0x1c)" (* "*") (cast_expression "(code **)(puVar17 + -0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x1c)" (( "(") (binary_expression "puVar17 + -0x1c" (identifier "puVar17") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (cast_expression "(code *)(iVar10 + 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar17 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x21eb3b" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x24)" (( "(") (binary_expression "puVar17 + -0x24" (identifier "puVar17") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x21eb3b")) (; ";")) (expression_statement "local_7c = (code *)(iVar10 + 0x18);" (assignment_expression "local_7c = (code *)(iVar10 + 0x18)" (identifier "local_7c") (= "=") (cast_expression "(code *)(iVar10 + 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" (identifier "FUN_00074340") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar28 = CONCAT44(extraout_EDX_01,local_a4);" (assignment_expression "uVar28 = CONCAT44(extraout_EDX_01,local_a4)" (identifier "uVar28") (= "=") (call_expression "CONCAT44(extraout_EDX_01,local_a4)" (identifier "CONCAT44") (argument_list "(extraout_EDX_01,local_a4)" (( "(") (identifier "extraout_EDX_01") (, ",") (identifier "local_a4") () ")")))) (; ";")) (expression_statement "ppcVar18 = (code **)(puVar17 + -4);" (assignment_expression "ppcVar18 = (code **)(puVar17 + -4)" (identifier "ppcVar18") (= "=") (cast_expression "(code **)(puVar17 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -4)" (( "(") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "puVar17 = puVar17 + -4;" (assignment_expression "puVar17 = puVar17 + -4" (identifier "puVar17") (= "=") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }" (else "else") (compound_statement "{\n        if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);\n        uVar8 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar8 + uVar15 * 4);\n        uVar29 = CONCAT44(uVar8,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0021ecef;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar29;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }\nLAB_0021e7e0:\n        local_5c = (code *)uVar29;\n        pbVar4 = *(byte **)local_5c;\n        iVar19 = 8;\n        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);\n        pbVar22 = pbVar4;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }\n        local_c4 = pbVar4;\n        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);\n        if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar28 = CONCAT44(uVar12,local_a4);\n        puVar17 = (undefined1 *)ppcVar18;\n        if (bVar14 != 0) goto LAB_0021e8f0;\n      }" ({ "{") (if_statement "if (uVar15 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "(uVar15 < *(uint *)(param_4 + 0xb0))" (( "(") (binary_expression "uVar15 < *(uint *)(param_4 + 0xb0)" (identifier "uVar15") (< "<") (pointer_expression "*(uint *)(param_4 + 0xb0)" (* "*") (cast_expression "(uint *)(param_4 + 0xb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb0)" (( "(") (binary_expression "param_4 + 0xb0" (identifier "param_4") (+ "+") (number_literal "0xb0")) () ")"))))) () ")")) (compound_statement "{\n          local_5c = (code *)0x0;\nLAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "local_5c = (code *)0x0;" (assignment_expression "local_5c = (code *)0x0" (identifier "local_5c") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0021ecef:\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;" (statement_identifier "LAB_0021ecef") (: ":") (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" (* "*") (cast_expression "(undefined ***)((int)ppcVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a8 + -0x596da" (identifier "local_a8") (+ "+") (number_literal "-0x596da"))) (; ";"))) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x11c")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a8 + -0x19ca36" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x19ca36"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21ed10")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);" (assignment_expression "uVar15 = uVar15 - *(uint *)(param_4 + 0xb0)" (identifier "uVar15") (= "=") (binary_expression "uVar15 - *(uint *)(param_4 + 0xb0)" (identifier "uVar15") (- "-") (pointer_expression "*(uint *)(param_4 + 0xb0)" (* "*") (cast_expression "(uint *)(param_4 + 0xb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb0)" (( "(") (binary_expression "param_4 + 0xb0" (identifier "param_4") (+ "+") (number_literal "0xb0")) () ")")))))) (; ";")) (expression_statement "uVar8 = *(uint *)(param_4 + 0xbc);" (assignment_expression "uVar8 = *(uint *)(param_4 + 0xbc)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(param_4 + 0xbc)" (* "*") (cast_expression "(uint *)(param_4 + 0xbc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xbc)" (( "(") (binary_expression "param_4 + 0xbc" (identifier "param_4") (+ "+") (number_literal "0xbc")) () ")"))))) (; ";")) (expression_statement "local_a0 = *(code ***)(param_4 + 0xc0);" (assignment_expression "local_a0 = *(code ***)(param_4 + 0xc0)" (identifier "local_a0") (= "=") (pointer_expression "*(code ***)(param_4 + 0xc0)" (* "*") (cast_expression "(code ***)(param_4 + 0xc0)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_4 + 0xc0)" (( "(") (binary_expression "param_4 + 0xc0" (identifier "param_4") (+ "+") (number_literal "0xc0")) () ")"))))) (; ";")) (if_statement "if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15)" (( "(") (binary_expression "(uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15" (call_expression "(uint)((int)((int)local_a0 - uVar8) >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)((int)local_a0 - uVar8) >> 2)" (( "(") (binary_expression "(int)((int)local_a0 - uVar8) >> 2" (cast_expression "(int)((int)local_a0 - uVar8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)local_a0 - uVar8)" (( "(") (binary_expression "(int)local_a0 - uVar8" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (- "-") (identifier "uVar8")) () ")"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar15")) () ")")) (compound_statement "{\n          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;\n          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;\n          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" (* "*") (cast_expression "(undefined ***)((int)ppcVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a8 + -0x59678" (identifier "local_a8") (+ "+") (number_literal "-0x59678"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x8ad")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a8 + -0x19cc7b" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x19cc7b"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21f0e3")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_5c = *(code **)(uVar8 + uVar15 * 4);" (assignment_expression "local_5c = *(code **)(uVar8 + uVar15 * 4)" (identifier "local_5c") (= "=") (pointer_expression "*(code **)(uVar8 + uVar15 * 4)" (* "*") (cast_expression "(code **)(uVar8 + uVar15 * 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar8 + uVar15 * 4)" (( "(") (binary_expression "uVar8 + uVar15 * 4" (identifier "uVar8") (+ "+") (binary_expression "uVar15 * 4" (identifier "uVar15") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar29 = CONCAT44(uVar8,local_5c);" (assignment_expression "uVar29 = CONCAT44(uVar8,local_5c)" (identifier "uVar29") (= "=") (call_expression "CONCAT44(uVar8,local_5c)" (identifier "CONCAT44") (argument_list "(uVar8,local_5c)" (( "(") (identifier "uVar8") (, ",") (identifier "local_5c") () ")")))) (; ";")) (if_statement "if (local_5c == (code *)0x0) goto LAB_0021ecef;" (if "if") (parenthesized_expression "(local_5c == (code *)0x0)" (( "(") (binary_expression "local_5c == (code *)0x0" (identifier "local_5c") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0021ecef;" (goto "goto") (statement_identifier "LAB_0021ecef") (; ";"))) (if_statement "if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }" (if "if") (parenthesized_expression "(((byte)local_5c[0x2a] & 0x10) != 0)" (( "(") (binary_expression "((byte)local_5c[0x2a] & 0x10) != 0" (parenthesized_expression "((byte)local_5c[0x2a] & 0x10)" (( "(") (binary_expression "(byte)local_5c[0x2a] & 0x10" (cast_expression "(byte)local_5c[0x2a]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_5c[0x2a]" (identifier "local_5c") ([ "[") (number_literal "0x2a") (] "]"))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(code **)((int)ppcVar18 + -0xc) = local_5c;\n          *(int *)((int)ppcVar18 + -0x10) = param_2;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;\n          uVar29 = FUN_0034cd90();\n        }" ({ "{") (expression_statement "*(code **)((int)ppcVar18 + -0xc) = local_5c;" (assignment_expression "*(code **)((int)ppcVar18 + -0xc) = local_5c" (pointer_expression "*(code **)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = param_2;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = param_2" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21ecda")) (; ";")) (expression_statement "uVar29 = FUN_0034cd90();" (assignment_expression "uVar29 = FUN_0034cd90()" (identifier "uVar29") (= "=") (call_expression "FUN_0034cd90()" (identifier "FUN_0034cd90") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "local_5c = (code *)uVar29;" (assignment_expression "local_5c = (code *)uVar29" (identifier "local_5c") (= "=") (cast_expression "(code *)uVar29" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar29"))) (; ";")) (if_statement "if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }" (if "if") (parenthesized_expression "(((byte)local_5c[0x2a] & 7) == 0)" (( "(") (binary_expression "((byte)local_5c[0x2a] & 7) == 0" (parenthesized_expression "((byte)local_5c[0x2a] & 7)" (( "(") (binary_expression "(byte)local_5c[0x2a] & 7" (cast_expression "(byte)local_5c[0x2a]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_5c[0x2a]" (identifier "local_5c") ([ "[") (number_literal "0x2a") (] "]"))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }\n        }" ({ "{") (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" (identifier "local_d8") (= "=") (pointer_expression "*(code **)(local_5c + 0x30)" (* "*") (cast_expression "(code **)(local_5c + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_5c + 0x30)" (( "(") (binary_expression "local_5c + 0x30" (identifier "local_5c") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_b0 = *(code **)(local_5c + 8);" (assignment_expression "local_b0 = *(code **)(local_5c + 8)" (identifier "local_b0") (= "=") (pointer_expression "*(code **)(local_5c + 8)" (* "*") (cast_expression "(code **)(local_5c + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_5c + 8)" (( "(") (binary_expression "local_5c + 8" (identifier "local_5c") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" (identifier "local_b4") (= "=") (binary_expression "local_d8 + local_ac" (identifier "local_d8") (+ "+") (identifier "local_ac"))) (; ";")) (if_statement "if (((byte)local_b0[0x2c] & 1) == 0) {\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }" (if "if") (parenthesized_expression "(((byte)local_b0[0x2c] & 1) == 0)" (( "(") (binary_expression "((byte)local_b0[0x2c] & 1) == 0" (parenthesized_expression "((byte)local_b0[0x2c] & 1)" (( "(") (binary_expression "(byte)local_b0[0x2c] & 1" (cast_expression "(byte)local_b0[0x2c]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_b0[0x2c]" (identifier "local_b0") ([ "[") (number_literal "0x2c") (] "]"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            cVar1 = local_5c[0x28];\n            local_a4 = *(code **)(local_5c + 0xc);\n            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar24 = ((byte)cVar1 & 0xf) < 2;\n            bVar26 = ((byte)cVar1 & 0xf) == 2;\n            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }" ({ "{") (expression_statement "cVar1 = local_5c[0x28];" (assignment_expression "cVar1 = local_5c[0x28]" (identifier "cVar1") (= "=") (subscript_expression "local_5c[0x28]" (identifier "local_5c") ([ "[") (number_literal "0x28") (] "]"))) (; ";")) (expression_statement "local_a4 = *(code **)(local_5c + 0xc);" (assignment_expression "local_a4 = *(code **)(local_5c + 0xc)" (identifier "local_a4") (= "=") (pointer_expression "*(code **)(local_5c + 0xc)" (* "*") (cast_expression "(code **)(local_5c + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_5c + 0xc)" (( "(") (binary_expression "local_5c + 0xc" (identifier "local_5c") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "bVar14 = (byte)local_5c[0x2b] >> 5 & 1;" (assignment_expression "bVar14 = (byte)local_5c[0x2b] >> 5 & 1" (identifier "bVar14") (= "=") (binary_expression "(byte)local_5c[0x2b] >> 5 & 1" (binary_expression "(byte)local_5c[0x2b] >> 5" (cast_expression "(byte)local_5c[0x2b]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_5c[0x2b]" (identifier "local_5c") ([ "[") (number_literal "0x2b") (] "]"))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = ((byte)cVar1 & 0xf) < 2;" (assignment_expression "bVar24 = ((byte)cVar1 & 0xf) < 2" (identifier "bVar24") (= "=") (binary_expression "((byte)cVar1 & 0xf) < 2" (parenthesized_expression "((byte)cVar1 & 0xf)" (( "(") (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "cVar1")) (& "&") (number_literal "0xf")) () ")")) (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar26 = ((byte)cVar1 & 0xf) == 2;" (assignment_expression "bVar26 = ((byte)cVar1 & 0xf) == 2" (identifier "bVar26") (= "=") (binary_expression "((byte)cVar1 & 0xf) == 2" (parenthesized_expression "((byte)cVar1 & 0xf)" (( "(") (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "cVar1")) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "2"))) (; ";")) (expression_statement "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (identifier "uVar29") (= "=") (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(cVar1,local_5c)" (identifier "CONCAT14") (argument_list "(cVar1,local_5c)" (( "(") (identifier "cVar1") (, ",") (identifier "local_5c") () ")")))) (& "&") (number_literal "0xfffffffff"))) (; ";")) (if_statement "if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" (if "if") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (compound_statement "{\n              bVar24 = false;\n              bVar26 = local_be == '\0';\n              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" ({ "{") (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = local_be == '\0';" (assignment_expression "bVar26 = local_be == '\0'" (identifier "bVar26") (= "=") (binary_expression "local_be == '\0'" (identifier "local_be") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (identifier "uVar29") (= "=") (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(cVar1,local_5c)" (identifier "CONCAT14") (argument_list "(cVar1,local_5c)" (( "(") (identifier "cVar1") (, ",") (identifier "local_5c") () ")")))) (& "&") (number_literal "0xfffffffff"))) (; ";")) (if_statement "if (!bVar26) {\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n                if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;\n                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;\n                *(code ****)((int)ppcVar18 + -0x14) = &local_80;\n                *(code ***)((int)ppcVar18 + -0x18) = &local_64;\n                local_80 = local_a0 + 0xd;\n                *(code ***)((int)ppcVar18 + -0x1c) = local_80;\n                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;\n                local_64 = local_b0;\n                local_60 = local_a4;\n                FUN_00074280();\n                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);\n                bVar26 = ppcVar18 == (code **)0x4;\n                ppcVar18 = (code **)((int)ppcVar18 + -4);\n                uVar29 = CONCAT44(extraout_EDX_05,local_5c);\n              }" ({ "{") (if_statement "if (bVar14 != 0) {\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }" (if "if") (parenthesized_expression "(bVar14 != 0)" (( "(") (binary_expression "bVar14 != 0" (identifier "bVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }\n                }" ({ "{") (if_statement "if (*(int *)(*local_b8 + 8) == 0) {\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }" (if "if") (parenthesized_expression "(*(int *)(*local_b8 + 8) == 0)" (( "(") (binary_expression "*(int *)(*local_b8 + 8) == 0" (pointer_expression "*(int *)(*local_b8 + 8)" (* "*") (cast_expression "(int *)(*local_b8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_b8 + 8)" (( "(") (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" (* "*") (identifier "local_b8")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    *(code **)((int)ppcVar18 + -4) = local_5c;\n                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;\n                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;\n                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;\n                    \n                    \n                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;\n                    FUN_002446e0();\n                  }" ({ "{") (expression_statement "*(code **)((int)ppcVar18 + -4) = local_5c;" (assignment_expression "*(code **)((int)ppcVar18 + -4) = local_5c" (pointer_expression "*(code **)((int)ppcVar18 + -4)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -4)" (( "(") (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;" (assignment_expression "*(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e" (pointer_expression "*(undefined ***)((int)ppcVar18 + -8)" (* "*") (cast_expression "(undefined ***)((int)ppcVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a8 + -0x5941e" (identifier "local_a8") (+ "+") (number_literal "-0x5941e"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a8 + -0x1a1d93" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21f18d")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)) {\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }" (if "if") (parenthesized_expression "((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0))" (( "(") (binary_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||\n                     (((byte)local_5c[0x29] & 3) == 0)" (parenthesized_expression "(*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" (* "*") (cast_expression "(char *)(*(int *)(*local_b8 + 8) + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*local_b8 + 8) + 0x1a25)" (( "(") (binary_expression "*(int *)(*local_b8 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_b8 + 8)" (* "*") (cast_expression "(int *)(*local_b8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_b8 + 8)" (( "(") (binary_expression "*local_b8 + 8" (pointer_expression "*local_b8" (* "*") (identifier "local_b8")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(((byte)local_5c[0x29] & 3) == 0)" (( "(") (binary_expression "((byte)local_5c[0x29] & 3) == 0" (parenthesized_expression "((byte)local_5c[0x29] & 3)" (( "(") (binary_expression "(byte)local_5c[0x29] & 3" (cast_expression "(byte)local_5c[0x29]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_5c[0x29]" (identifier "local_5c") ([ "[") (number_literal "0x29") (] "]"))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    uVar8 = local_e4 - 4;\n                    bVar24 = uVar8 < 0x36;\n                    bVar26 = uVar8 == 0x36;\n                    uVar29 = CONCAT44(uVar8,local_5c);\n                    if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }\n                    goto LAB_0021e7e0;\n                  }" ({ "{") (expression_statement "uVar8 = local_e4 - 4;" (assignment_expression "uVar8 = local_e4 - 4" (identifier "uVar8") (= "=") (binary_expression "local_e4 - 4" (identifier "local_e4") (- "-") (number_literal "4"))) (; ";")) (expression_statement "bVar24 = uVar8 < 0x36;" (assignment_expression "bVar24 = uVar8 < 0x36" (identifier "bVar24") (= "=") (binary_expression "uVar8 < 0x36" (identifier "uVar8") (< "<") (number_literal "0x36"))) (; ";")) (expression_statement "bVar26 = uVar8 == 0x36;" (assignment_expression "bVar26 = uVar8 == 0x36" (identifier "bVar26") (= "=") (binary_expression "uVar8 == 0x36" (identifier "uVar8") (== "==") (number_literal "0x36"))) (; ";")) (expression_statement "uVar29 = CONCAT44(uVar8,local_5c);" (assignment_expression "uVar29 = CONCAT44(uVar8,local_5c)" (identifier "uVar29") (= "=") (call_expression "CONCAT44(uVar8,local_5c)" (identifier "CONCAT44") (argument_list "(uVar8,local_5c)" (( "(") (identifier "uVar8") (, ",") (identifier "local_5c") () ")")))) (; ";")) (if_statement "if (uVar8 < 0x37) {\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }" (if "if") (parenthesized_expression "(uVar8 < 0x37)" (( "(") (binary_expression "uVar8 < 0x37" (identifier "uVar8") (< "<") (number_literal "0x37")) () ")")) (compound_statement "{\n                    \n                    \n                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();\n                      return;\n                    }" ({ "{") (expression_statement "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();" (call_expression "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))()" (parenthesized_expression "(*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))" (( "(") (pointer_expression "*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8)" (* "*") (cast_expression "(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8[local_e4 - 0x597df] + (int)local_a8)" (( "(") (binary_expression "local_a8[local_e4 - 0x597df] + (int)local_a8" (subscript_expression "local_a8[local_e4 - 0x597df]" (identifier "local_a8") ([ "[") (binary_expression "local_e4 - 0x597df" (identifier "local_e4") (- "-") (number_literal "0x597df")) (] "]")) (+ "+") (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8"))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0021e7e0;" (goto "goto") (statement_identifier "LAB_0021e7e0") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" (identifier "local_a0") (= "=") (pointer_expression "*(code ***)(param_2 + 0x15c)" (* "*") (cast_expression "(code ***)(param_2 + 0x15c)" (( "(") (type_descriptor "code ***" (type_identifier "code") (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 "*(undefined4 *)((int)ppcVar18 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(code ****)((int)ppcVar18 + -0x14) = &local_80;" (assignment_expression "*(code ****)((int)ppcVar18 + -0x14) = &local_80" (pointer_expression "*(code ****)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(code ****)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "code ****" (type_identifier "code") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_80" (& "&") (identifier "local_80"))) (; ";")) (expression_statement "*(code ***)((int)ppcVar18 + -0x18) = &local_64;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x18) = &local_64" (pointer_expression "*(code ***)((int)ppcVar18 + -0x18)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0x18)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x18)" (( "(") (binary_expression "(int)ppcVar18 + -0x18" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "local_80 = local_a0 + 0xd;" (assignment_expression "local_80 = local_a0 + 0xd" (identifier "local_80") (= "=") (binary_expression "local_a0 + 0xd" (identifier "local_a0") (+ "+") (number_literal "0xd"))) (; ";")) (expression_statement "*(code ***)((int)ppcVar18 + -0x1c) = local_80;" (assignment_expression "*(code ***)((int)ppcVar18 + -0x1c) = local_80" (pointer_expression "*(code ***)((int)ppcVar18 + -0x1c)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0x1c)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x1c)" (( "(") (binary_expression "(int)ppcVar18 + -0x1c" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_80")) (; ";")) (expression_statement "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)ppcVar18 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)ppcVar18 + -0x20)" (* "*") (cast_expression "(undefined1 **)((int)ppcVar18 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x20)" (( "(") (binary_expression "(int)ppcVar18 + -0x20" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x24)" (( "(") (binary_expression "(int)ppcVar18 + -0x24" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x21ee8e")) (; ";")) (expression_statement "local_64 = local_b0;" (assignment_expression "local_64 = local_b0" (identifier "local_64") (= "=") (identifier "local_b0")) (; ";")) (expression_statement "local_60 = local_a4;" (assignment_expression "local_60 = local_a4" (identifier "local_60") (= "=") (identifier "local_a4")) (; ";")) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" (identifier "FUN_00074280") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);" (assignment_expression "bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20)" (identifier "bVar24") (= "=") (binary_expression "(undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20)" (cast_expression "(undefined1 *)0xffffffe3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffe3")) (< "<") (cast_expression "(undefined1 *)((int)ppcVar18 + -0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x20)" (( "(") (binary_expression "(int)ppcVar18 + -0x20" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (expression_statement "bVar26 = ppcVar18 == (code **)0x4;" (assignment_expression "bVar26 = ppcVar18 == (code **)0x4" (identifier "bVar26") (= "=") (binary_expression "ppcVar18 == (code **)0x4" (identifier "ppcVar18") (== "==") (cast_expression "(code **)0x4" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "ppcVar18 = (code **)((int)ppcVar18 + -4);" (assignment_expression "ppcVar18 = (code **)((int)ppcVar18 + -4)" (identifier "ppcVar18") (= "=") (cast_expression "(code **)((int)ppcVar18 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -4)" (( "(") (binary_expression "(int)ppcVar18 + -4" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "uVar29 = CONCAT44(extraout_EDX_05,local_5c);" (assignment_expression "uVar29 = CONCAT44(extraout_EDX_05,local_5c)" (identifier "uVar29") (= "=") (call_expression "CONCAT44(extraout_EDX_05,local_5c)" (identifier "CONCAT44") (argument_list "(extraout_EDX_05,local_5c)" (( "(") (identifier "extraout_EDX_05") (, ",") (identifier "local_5c") () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }" (else "else") (compound_statement "{\n            local_a4 = (code *)0x0;\n            bVar24 = false;\n            bVar14 = 0;\n            bVar26 = true;\n            local_b0 = (code *)0x0;\n          }" ({ "{") (expression_statement "local_a4 = (code *)0x0;" (assignment_expression "local_a4 = (code *)0x0" (identifier "local_a4") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" (identifier "local_b0") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }" (else "else") (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          bVar14 = 0;\n          local_a4 = (code *)0x0;\n          local_b0 = (code *)0x0;\n          bVar24 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar26 = local_b4 == (code *)0x0;\n        }" ({ "{") (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" (identifier "local_d8") (= "=") (pointer_expression "*(code **)(local_5c + 0x30)" (* "*") (cast_expression "(code **)(local_5c + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_5c + 0x30)" (( "(") (binary_expression "local_5c + 0x30" (identifier "local_5c") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a4 = (code *)0x0;" (assignment_expression "local_a4 = (code *)0x0" (identifier "local_a4") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" (identifier "local_b0") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar24 = CARRY4(local_ac,(uint)local_d8);" (assignment_expression "bVar24 = CARRY4(local_ac,(uint)local_d8)" (identifier "bVar24") (= "=") (call_expression "CARRY4(local_ac,(uint)local_d8)" (identifier "CARRY4") (argument_list "(local_ac,(uint)local_d8)" (( "(") (identifier "local_ac") (, ",") (cast_expression "(uint)local_d8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_d8")) () ")")))) (; ";")) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" (identifier "local_b4") (= "=") (binary_expression "local_d8 + local_ac" (identifier "local_d8") (+ "+") (identifier "local_ac"))) (; ";")) (expression_statement "bVar26 = local_b4 == (code *)0x0;" (assignment_expression "bVar26 = local_b4 == (code *)0x0" (identifier "bVar26") (= "=") (binary_expression "local_b4 == (code *)0x0" (identifier "local_b4") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (} "}")))) (labeled_statement "LAB_0021e7e0:\n        local_5c = (code *)uVar29;" (statement_identifier "LAB_0021e7e0") (: ":") (expression_statement "local_5c = (code *)uVar29;" (assignment_expression "local_5c = (code *)uVar29" (identifier "local_5c") (= "=") (cast_expression "(code *)uVar29" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar29"))) (; ";"))) (expression_statement "pbVar4 = *(byte **)local_5c;" (assignment_expression "pbVar4 = *(byte **)local_5c" (identifier "pbVar4") (= "=") (pointer_expression "*(byte **)local_5c" (* "*") (cast_expression "(byte **)local_5c" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_5c")))) (; ";")) (expression_statement "iVar19 = 8;" (assignment_expression "iVar19 = 8" (identifier "iVar19") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar20 = (byte *)((int)local_a8 + -0x19ca26);" (assignment_expression "pbVar20 = (byte *)((int)local_a8 + -0x19ca26)" (identifier "pbVar20") (= "=") (cast_expression "(byte *)((int)local_a8 + -0x19ca26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + -0x19ca26)" (( "(") (binary_expression "(int)local_a8 + -0x19ca26" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x19ca26")) () ")")))) (; ";")) (expression_statement "pbVar22 = pbVar4;" (assignment_expression "pbVar22 = pbVar4" (identifier "pbVar22") (= "=") (identifier "pbVar4")) (; ";")) (do_statement "do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);" (do "do") (compound_statement "{\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar24 = *pbVar20 < *pbVar22;\n          bVar26 = *pbVar20 == *pbVar22;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar20 < *pbVar22;" (assignment_expression "bVar24 = *pbVar20 < *pbVar22" (identifier "bVar24") (= "=") (binary_expression "*pbVar20 < *pbVar22" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "bVar26 = *pbVar20 == *pbVar22;" (assignment_expression "bVar26 = *pbVar20 == *pbVar22" (identifier "bVar26") (= "=") (binary_expression "*pbVar20 == *pbVar22" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" (identifier "pbVar22") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" (identifier "bVar24") (= "=") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (bVar24) {\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }\n        else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }" (if "if") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (compound_statement "{\n          cVar11 = '\0';\n          pbVar4 = pbVar4 + 8;\n        }" ({ "{") (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" (identifier "cVar11") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pbVar4 = pbVar4 + 8;" (assignment_expression "pbVar4 = pbVar4 + 8" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 8" (identifier "pbVar4") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }" (else "else") (compound_statement "{\n          iVar19 = 7;\n          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);\n          pbVar22 = pbVar4;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          cVar11 = (!bVar25 && !bVar24) - bVar25;\n          pbVar4 = pbVar4 + 7;\n          if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }\n        }" ({ "{") (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" (identifier "iVar19") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);" (assignment_expression "pbVar20 = (byte *)((int)local_a8 + -0x19ca1d)" (identifier "pbVar20") (= "=") (cast_expression "(byte *)((int)local_a8 + -0x19ca1d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + -0x19ca1d)" (( "(") (binary_expression "(int)local_a8 + -0x19ca1d" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-0x19ca1d")) () ")")))) (; ";")) (expression_statement "pbVar22 = pbVar4;" (assignment_expression "pbVar22 = pbVar4" (identifier "pbVar22") (= "=") (identifier "pbVar4")) (; ";")) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);" (do "do") (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar25 = *pbVar20 < *pbVar22;\n            bVar24 = *pbVar20 == *pbVar22;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar20 < *pbVar22;" (assignment_expression "bVar25 = *pbVar20 < *pbVar22" (identifier "bVar25") (= "=") (binary_expression "*pbVar20 < *pbVar22" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "bVar24 = *pbVar20 == *pbVar22;" (assignment_expression "bVar24 = *pbVar20 == *pbVar22" (identifier "bVar24") (= "=") (binary_expression "*pbVar20 == *pbVar22" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" (identifier "pbVar22") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "cVar11 = (!bVar25 && !bVar24) - bVar25;" (assignment_expression "cVar11 = (!bVar25 && !bVar24) - bVar25" (identifier "cVar11") (= "=") (binary_expression "(!bVar25 && !bVar24) - bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" (( "(") (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (- "-") (identifier "bVar25"))) (; ";")) (expression_statement "pbVar4 = pbVar4 + 7;" (assignment_expression "pbVar4 = pbVar4 + 7" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 7" (identifier "pbVar4") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if (cVar11 != '\0') {\n            pbVar4 = local_c4;\n          }" (if "if") (parenthesized_expression "(cVar11 != '\0')" (( "(") (binary_expression "cVar11 != '\0'" (identifier "cVar11") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            pbVar4 = local_c4;\n          }" ({ "{") (expression_statement "pbVar4 = local_c4;" (assignment_expression "pbVar4 = local_c4" (identifier "pbVar4") (= "=") (identifier "local_c4")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_c4 = pbVar4;" (assignment_expression "local_c4 = pbVar4" (identifier "local_c4") (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);" (assignment_expression "uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11)" (identifier "uVar12") (= "=") (call_expression "CONCAT31((int3)(uVar29 >> 0x28),cVar11)" (identifier "CONCAT31") (argument_list "((int3)(uVar29 >> 0x28),cVar11)" (( "(") (call_expression "(int3)(uVar29 >> 0x28)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "(uVar29 >> 0x28)" (( "(") (binary_expression "uVar29 >> 0x28" (identifier "uVar29") (>> ">>") (number_literal "0x28")) () ")"))) (, ",") (identifier "cVar11") () ")")))) (; ";")) (if_statement "if (local_bd != '\0') {\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" (if "if") (parenthesized_expression "(local_bd != '\0')" (( "(") (binary_expression "local_bd != '\0'" (identifier "local_bd") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(int *)((int)ppcVar18 + -0x10) = local_bc;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;\n          FUN_00073b00();\n          puVar3 = *(undefined4 **)(local_c8 + 4);\n          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }\n          *(code ***)((int)ppcVar18 + -0xc) = local_a0;\n          *(code **)((int)ppcVar18 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = 0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;\n          FUN_00073e70();\n          local_30 = 0;\n          uVar8 = *param_7;\n          puVar3 = *(undefined4 **)(local_cc + 4);\n          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);\n          if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)ppcVar18 + -0xc) = &local_54;\n          *(int *)((int)ppcVar18 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" ({ "{") (if_statement "if (bVar14 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }" (if "if") (parenthesized_expression "(bVar14 == 0)" (( "(") (binary_expression "bVar14 == 0" (identifier "bVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_34 = (code *)0x0;\n            local_30 = 0;\n          }" ({ "{") (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" (identifier "local_34") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }" (else "else") (compound_statement "{\n            local_34 = local_b0;\n            local_30 = (uint)local_a4;\n          }" ({ "{") (expression_statement "local_34 = local_b0;" (assignment_expression "local_34 = local_b0" (identifier "local_34") (= "=") (identifier "local_b0")) (; ";")) (expression_statement "local_30 = (uint)local_a4;" (assignment_expression "local_30 = (uint)local_a4" (identifier "local_30") (= "=") (cast_expression "(uint)local_a4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_a4"))) (; ";")) (} "}")))) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_bc;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_bc" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e849")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar3 = *(undefined4 **)(local_c8 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_c8 + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(local_c8 + 4)" (* "*") (cast_expression "(undefined4 **)(local_c8 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_c8 + 4)" (( "(") (binary_expression "local_c8 + 4" (identifier "local_c8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (puVar3 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }\n          else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }" (if "if") (parenthesized_expression "(puVar3 == *(undefined4 **)(local_c8 + 8))" (( "(") (binary_expression "puVar3 == *(undefined4 **)(local_c8 + 8)" (identifier "puVar3") (== "==") (pointer_expression "*(undefined4 **)(local_c8 + 8)" (* "*") (cast_expression "(undefined4 **)(local_c8 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_c8 + 8)" (( "(") (binary_expression "local_c8 + 8" (identifier "local_c8") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(code ***)((int)ppcVar18 + -8) = &local_5c;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(int *)((int)ppcVar18 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;\n            FUN_000726c0();\n          }" ({ "{") (expression_statement "*(code ***)((int)ppcVar18 + -8) = &local_5c;" (assignment_expression "*(code ***)((int)ppcVar18 + -8) = &local_5c" (pointer_expression "*(code ***)((int)ppcVar18 + -8)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -8)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;" (assignment_expression "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3" (pointer_expression "*(undefined4 **)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 **)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_c8" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21edcb")) (; ";")) (expression_statement "FUN_000726c0();" (call_expression "FUN_000726c0()" (identifier "FUN_000726c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar3 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;\n          }" ({ "{") (expression_statement "*puVar3 = local_5c;" (assignment_expression "*puVar3 = local_5c" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined4 **)(local_c8 + 4) = puVar3 + 1;" (assignment_expression "*(undefined4 **)(local_c8 + 4) = puVar3 + 1" (pointer_expression "*(undefined4 **)(local_c8 + 4)" (* "*") (cast_expression "(undefined4 **)(local_c8 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_c8 + 4)" (( "(") (binary_expression "local_c8 + 4" (identifier "local_c8") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar3 + 1" (identifier "puVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_dc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_dc")) (; ";")) (expression_statement "local_34 = local_d8;" (assignment_expression "local_34 = local_d8" (identifier "local_34") (= "=") (identifier "local_d8")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" (identifier "local_2c") (= "=") (identifier "local_ac")) (; ";")) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" (identifier "local_28") (= "=") (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e89d")) (; ";")) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" (identifier "FUN_00073e70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = *param_7;" (assignment_expression "uVar8 = *param_7" (identifier "uVar8") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "puVar3 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_cc + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(local_cc + 4)" (* "*") (cast_expression "(undefined4 **)(local_cc + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 4)" (( "(") (binary_expression "local_cc + 4" (identifier "local_cc") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18);" (assignment_expression "local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" (identifier "local_34") (= "=") (cast_expression "(code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18)" (( "(") (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |\n                             uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" (( "(") (binary_expression "uVar8 & 0xff0000" (identifier "uVar8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" (( "(") (binary_expression "uVar8 & 0xff00" (identifier "uVar8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar8 << 0x18" (identifier "uVar8") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (if_statement "if (puVar3 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }\n          else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" (if "if") (parenthesized_expression "(puVar3 == *(undefined4 **)(local_cc + 8))" (( "(") (binary_expression "puVar3 == *(undefined4 **)(local_cc + 8)" (identifier "puVar3") (== "==") (pointer_expression "*(undefined4 **)(local_cc + 8)" (* "*") (cast_expression "(undefined4 **)(local_cc + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 8)" (( "(") (binary_expression "local_cc + 8" (identifier "local_cc") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(code ***)((int)ppcVar18 + -8) = local_a0;\n            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;\n            *(code **)((int)ppcVar18 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;\n            FUN_00072a40();\n          }" ({ "{") (expression_statement "*(code ***)((int)ppcVar18 + -8) = local_a0;" (assignment_expression "*(code ***)((int)ppcVar18 + -8) = local_a0" (pointer_expression "*(code ***)((int)ppcVar18 + -8)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -8)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -8)" (( "(") (binary_expression "(int)ppcVar18 + -8" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;" (assignment_expression "*(undefined4 **)((int)ppcVar18 + -0xc) = puVar3" (pointer_expression "*(undefined4 **)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(undefined4 **)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_cc;" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_cc" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_cc")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21eded")) (; ";")) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" (identifier "FUN_00072a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" (else "else") (compound_statement "{\n            *puVar3 = local_34;\n            puVar3[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar3 + 2;\n          }" ({ "{") (expression_statement "*puVar3 = local_34;" (assignment_expression "*puVar3 = local_34" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar3 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar3 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" (* "*") (cast_expression "(undefined4 **)(local_cc + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 4)" (( "(") (binary_expression "local_cc + 4" (identifier "local_cc") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar3 + 2" (identifier "puVar3") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" (identifier "local_54") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(code ***)((int)ppcVar18 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)ppcVar18 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)ppcVar18 + -0xc)" (* "*") (cast_expression "(code ***)((int)ppcVar18 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppcVar18 + -0xc)" (( "(") (binary_expression "(int)ppcVar18 + -0xc" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(int *)((int)ppcVar18 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)ppcVar18 + -0x10) = local_e0" (pointer_expression "*(int *)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(int *)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_e0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e8e5")) (; ";")) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" (identifier "FUN_00074020") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar12 = extraout_EDX_00;" (assignment_expression "uVar12 = extraout_EDX_00" (identifier "uVar12") (= "=") (identifier "extraout_EDX_00")) (; ";")) (} "}"))) (expression_statement "uVar28 = CONCAT44(uVar12,local_a4);" (assignment_expression "uVar28 = CONCAT44(uVar12,local_a4)" (identifier "uVar28") (= "=") (call_expression "CONCAT44(uVar12,local_a4)" (identifier "CONCAT44") (argument_list "(uVar12,local_a4)" (( "(") (identifier "uVar12") (, ",") (identifier "local_a4") () ")")))) (; ";")) (expression_statement "puVar17 = (undefined1 *)ppcVar18;" (assignment_expression "puVar17 = (undefined1 *)ppcVar18" (identifier "puVar17") (= "=") (cast_expression "(undefined1 *)ppcVar18" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppcVar18"))) (; ";")) (if_statement "if (bVar14 != 0) goto LAB_0021e8f0;" (if "if") (parenthesized_expression "(bVar14 != 0)" (( "(") (binary_expression "bVar14 != 0" (identifier "bVar14") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0021e8f0;" (goto "goto") (statement_identifier "LAB_0021e8f0") (; ";"))) (} "}")))) (labeled_statement "LAB_0021e5a5:\n      local_a4 = (code *)uVar28;" (statement_identifier "LAB_0021e5a5") (: ":") (expression_statement "local_a4 = (code *)uVar28;" (assignment_expression "local_a4 = (code *)uVar28" (identifier "local_a4") (= "=") (cast_expression "(code *)uVar28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar28"))) (; ";"))) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" (identifier "local_d4") (= "=") (binary_expression "local_d4 + 1" (identifier "local_d4") (+ "+") (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"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_8 != local_d4)" (( "(") (binary_expression "param_8 != local_d4" (identifier "param_8") (!= "!=") (identifier "local_d4")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_4c[0] != local_ec) {\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }" (if "if") (parenthesized_expression "(local_4c[0] != local_ec)" (( "(") (binary_expression "local_4c[0] != local_ec" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_ec")) () ")")) (compound_statement "{\n    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;\n    FUN_003ae080();\n  }" ({ "{") (expression_statement "*(code **)((int)ppcVar18 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)ppcVar18 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)ppcVar18 + -0x10)" (* "*") (cast_expression "(code **)((int)ppcVar18 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x10)" (( "(") (binary_expression "(int)ppcVar18 + -0x10" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;" (assignment_expression "*(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba" (pointer_expression "*(undefined4 *)((int)ppcVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppcVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar18 + -0x14)" (( "(") (binary_expression "(int)ppcVar18 + -0x14" (cast_expression "(int)ppcVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar18")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x21e6ba")) (; ";")) (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 "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void gc_process_relocs(Target_s390<32> * this, Symbol_table * symtab,
   Layout * layout, Sized_relobj_file<32,_true> * object, uint data_shndx, uint sh_type, 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_130c1fc::Target_s390<32>::gc_process_relocs
          (Target_s390<32> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<32,_true> *object,uint data_shndx,uint sh_type,uchar *prelocs,
          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,
          size_t param_10,uchar *plocal_symbols)

{
  _Base_ptr *pp_Var1;
  byte bVar2;
  ushort uVar3;
  General_options *pGVar4;
  pointer puVar5;
  uint uVar6;
  _Base_ptr p_Var7;
  Target *pTVar8;
  Garbage_collection *pGVar9;
  undefined4 *puVar10;
  _func_int_varargs *p_Var11;
  char *pcVar12;
  Icf *pIVar13;
  code *pcVar14;
  Parameters *pPVar15;
  size_t sVar16;
  _func_int_varargs **pp_Var17;
  Xindex *pXVar18;
  pointer pcVar19;
  int iVar20;
  _Rb_tree_header *p_Var21;
  _Base_ptr p_Var22;
  _Rb_tree_header *p_Var23;
  char cVar24;
  General_options *extraout_EDX;
  General_options *extraout_EDX_00;
  pointer ppSVar25;
  General_options *extraout_EDX_01;
  _Alloc_hider _Var26;
  General_options *extraout_EDX_02;
  General_options *extraout_EDX_03;
  pointer extraout_EDX_04;
  General_options *extraout_EDX_05;
  General_options *extraout_EDX_06;
  byte bVar27;
  uint uVar28;
  Relobj *pRVar29;
  undefined4 *puVar30;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  **ppaVar31;
  Addend_info *unaff_ESI;
  undefined **ppuVar32;
  byte *pbVar33;
  Addend_info *pAVar34;
  _func_int_varargs **pp_Var35;
  _Alloc_hider _Var36;
  bool bVar37;
  bool bVar38;
  bool bVar39;
  byte bVar40;
  pair<std::__detail::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>,_bool>
  pVar41;
  General_options *pGStack_f0;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *local_ec;
  __node_gen_type *local_e8;
  uint local_e4;
  Reloc_addend_size_info *local_e0;
  Addend_info *local_dc;
  Relobj *local_d8;
  size_t local_d4;
  undefined1 *local_d0;
  Offset_info *local_cc;
  Symbol_info *local_c8;
  _func_int_varargs **local_c4;
  bool local_be;
  char local_bd;
  mapped_type *local_bc;
  Parameters **local_b8;
  int local_b4;
  Output_segment *local_b0;
  pointer local_ac;
  undefined **local_a8;
  Relobj *local_a4;
  Icf *local_a0;
  code *local_9c;
  _Rb_tree_header *local_98;
  undefined1 local_94 [16];
  __node_gen_type __node_gen_2;
  __node_gen_type __node_gen_3;
  __node_gen_type __node_gen_1;
  __node_gen_type __node_gen;
  Section_id *local_74;
  Icf *local_70;
  Sized_relobj_file<32,_true> *local_6c;
  uint local_68;
  Output_segment *local_64;
  Relobj *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;
  
  bVar40 = 0;
  local_a8 = &_GLOBAL_OFFSET_TABLE_;
  if (sh_type == 9) {
    return;
  }
  local_b8 = &gold::parameters;
  pGVar4 = gold::parameters->options_;
  if (pGVar4 == (General_options *)0x0) {
    pGStack_f0 = pGVar4;
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (pGVar4->icf_status_ == ICF_NONE) {
    local_ec = &src_section_name.field_2;
    pGStack_f0 = (General_options *)0x0;
    src_section_name._M_dataplus._M_p = (pointer)local_ec;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&src_section_name,"","");
    ppaVar31 = &local_ec;
  }
  else {
    (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])
              (&src_section_name,object,data_shndx);
    local_ec = &src_section_name.field_2;
    ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                **)&pGStack_f0;
  }
  _Var36._M_p = src_section_name._M_dataplus._M_p;
  pPVar15 = *local_b8;
  _Var26._M_p = (pointer)pPVar15->options_;
  if ((General_options *)_Var26._M_p == (General_options *)0x0) {
    *(Parameters **)((int)ppaVar31 + -4) = pPVar15;
    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;
    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;
    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f139;
    gold::do_gold_unreachable
              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
               *(char **)((int)ppaVar31 + -8));
  }
  if (((General_options *)_Var26._M_p)->icf_status_ == ICF_NONE) {
LAB_0021e40f:
    local_bd = '\0';
    local_e0 = (Reloc_addend_size_info *)0x0;
    local_cc = (Offset_info *)0x0;
    local_dc = (Addend_info *)0x0;
    local_c8 = (Symbol_info *)0x0;
    local_bc = (mapped_type *)0x0;
  }
  else {
    local_a4 = (Relobj *)&local_2c;
    src_id.first = (Relobj *)&local_2c;
    pcVar19 = (pointer)0xffffffff;
    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {
      *(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;
      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef87;
      sVar16 = strlen(*(char **)((int)ppaVar31 + -0x10));
      pcVar19 = _Var36._M_p + sVar16;
    }
    *(undefined4 *)((int)ppaVar31 + -4) = 0;
    *(pointer *)((int)ppaVar31 + -8) = pcVar19;
    local_a0 = (Icf *)&src_id;
    *(pointer *)((int)ppaVar31 + -0xc) = _Var36._M_p;
    *(Icf **)((int)ppaVar31 + -0x10) = local_a0;
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ef9f;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>();
    iVar20 = 5;
    bVar37 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppaVar31 + -0x10);
    bVar39 = ppaVar31 ==
             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
              **)0x0;
    ppuVar32 = local_a8 + -0x67293;
    pRVar29 = src_id.first;
    do {
      if (iVar20 == 0) break;
      iVar20 = iVar20 + -1;
      bVar27 = *(byte *)&(pRVar29->super_Object)._vptr_Object;
      bVar37 = *(byte *)ppuVar32 < bVar27;
      bVar39 = *(byte *)ppuVar32 == bVar27;
      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
      pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);
    } while (bVar39);
    bVar38 = false;
    bVar37 = (!bVar37 && !bVar39) == bVar37;
    if (!bVar37) {
      iVar20 = 0xf;
      pAVar34 = (Addend_info *)((int)local_a8 + -0x19ca46);
      pRVar29 = src_id.first;
      do {
        unaff_ESI = pAVar34;
        if (iVar20 == 0) break;
        iVar20 = iVar20 + -1;
        unaff_ESI = (Addend_info *)((int)pAVar34 + (uint)bVar40 * -2 + 1);
        bVar2 = *(byte *)&(pRVar29->super_Object)._vptr_Object;
        bVar27 = *(byte *)&(pAVar34->
                           super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                           )._M_impl._M_start;
        bVar38 = bVar27 < bVar2;
        bVar37 = bVar27 == bVar2;
        pAVar34 = unaff_ESI;
        pRVar29 = (Relobj *)((int)pRVar29 + (uint)bVar40 * -2 + 1);
      } while (bVar37);
      if ((!bVar38 && !bVar37) != bVar38) {
        if (src_id.first == local_a4) {
          pPVar15 = *local_b8;
          _Var26._M_p = (pointer)src_id.first;
        }
        else {
          *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f073;
          operator_delete(*(void **)((int)ppaVar31 + -0x10));
          pPVar15 = *local_b8;
          _Var26._M_p = (pointer)extraout_EDX_06;
        }
        goto LAB_0021e40f;
      }
    }
    if (src_id.first != local_a4) {
      *(Relobj **)((int)ppaVar31 + -0x10) = src_id.first;
      *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f1a9;
      operator_delete(*(void **)((int)ppaVar31 + -0x10));
    }
    *(Icf **)((int)ppaVar31 + -0xc) = local_a0;
    src_id.first = (Relobj *)object;
    src_id.second = data_shndx;
    local_a0 = symtab->icf_;
    *(Reloc_info_list **)((int)ppaVar31 + -0x10) = &symtab->icf_->reloc_info_list_;
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f014;
    local_bc = 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)ppaVar31 + -0x10),*(key_type **)((int)ppaVar31 + -0xc));
    unaff_ESI = &local_bc->addend_info;
    _Var26._M_p = (pointer)&local_bc->offset_info;
    local_c8 = &local_bc->symbol_info;
    local_e0 = &local_bc->reloc_addend_size_info;
    local_dc = unaff_ESI;
    local_cc = (Offset_info *)_Var26._M_p;
    pPVar15 = *local_b8;
    local_bd = '\x01';
  }
  if (pPVar15->options_ == (General_options *)0x0) {
    *(Addend_info **)((int)ppaVar31 + -4) = unaff_ESI;
    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;
    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;
    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f155;
    gold::do_gold_unreachable
              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
               *(char **)((int)ppaVar31 + -8));
  }
  local_be = false;
  if (pPVar15->options_->icf_status_ == ICF_SAFE) {
    *(Target_s390<32> **)((int)ppaVar31 + -0x10) = this;
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eeab;
    local_be = do_can_check_for_function_pointers(*(Target_s390<32> **)((int)ppaVar31 + -0x10));
    bVar37 = false;
    bVar39 = !local_be;
    _Var26._M_p = (pointer)extraout_EDX_05;
    if (!bVar39) {
      iVar20 = 0xc;
      local_be = false;
      ppuVar32 = local_a8 + -0x66894;
      _Var26 = src_section_name._M_dataplus;
      do {
        if (iVar20 == 0) break;
        iVar20 = iVar20 + -1;
        bVar37 = *(byte *)ppuVar32 < (byte)*_Var26._M_p;
        bVar39 = *(byte *)ppuVar32 == *_Var26._M_p;
        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
        _Var26._M_p = (pointer)((byte *)_Var26._M_p + (uint)bVar40 * -2 + 1);
      } while (bVar39);
      bVar38 = false;
      bVar37 = (!bVar37 && !bVar39) == bVar37;
      _Var26 = src_section_name._M_dataplus;
      if (!bVar37) {
        iVar20 = 0x11;
        pbVar33 = (byte *)((int)local_a8 + -0x19a243);
        _Var36 = src_section_name._M_dataplus;
        do {
          if (iVar20 == 0) break;
          iVar20 = iVar20 + -1;
          bVar38 = *pbVar33 < (byte)*_Var36._M_p;
          bVar37 = *pbVar33 == *_Var36._M_p;
          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;
          _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);
        } while (bVar37);
        bVar39 = false;
        bVar37 = (!bVar38 && !bVar37) == bVar38;
        if (!bVar37) {
          iVar20 = 0xc;
          pbVar33 = (byte *)((int)local_a8 + -0x19a231);
          _Var36 = src_section_name._M_dataplus;
          do {
            if (iVar20 == 0) break;
            iVar20 = iVar20 + -1;
            bVar39 = *pbVar33 < (byte)*_Var36._M_p;
            bVar37 = *pbVar33 == *_Var36._M_p;
            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;
            _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);
          } while (bVar37);
          bVar38 = false;
          bVar37 = (!bVar39 && !bVar37) == bVar39;
          if (!bVar37) {
            iVar20 = 0x11;
            ppuVar32 = local_a8 + -0x66889;
            _Var36 = src_section_name._M_dataplus;
            do {
              if (iVar20 == 0) break;
              iVar20 = iVar20 + -1;
              bVar38 = *(byte *)ppuVar32 < (byte)*_Var36._M_p;
              bVar37 = *(byte *)ppuVar32 == *_Var36._M_p;
              ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
              _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);
            } while (bVar37);
            bVar39 = false;
            bVar37 = (!bVar38 && !bVar37) == bVar38;
            if (!bVar37) {
              iVar20 = 9;
              pbVar33 = (byte *)((int)local_a8 + -0x19a212);
              _Var36 = src_section_name._M_dataplus;
              do {
                if (iVar20 == 0) break;
                iVar20 = iVar20 + -1;
                bVar39 = *pbVar33 < (byte)*_Var36._M_p;
                bVar37 = *pbVar33 == *_Var36._M_p;
                pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;
                _Var36._M_p = (pointer)((byte *)_Var36._M_p + (uint)bVar40 * -2 + 1);
              } while (bVar37);
              local_be = (!bVar39 && !bVar37) != bVar39;
            }
          }
        }
      }
    }
  }
  if (reloc_count != 0) {
    local_c4 = (_func_int_varargs **)0x0;
    local_d0 = local_94;
    local_d4 = 0;
    local_e8 = &__node_gen;
    do {
      uVar6 = *(uint *)(prelocs + 4);
      local_e4 = uVar6 >> 0x18;
      uVar28 = ((uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18) >> 8;
      uVar6 = *(uint *)(prelocs + 8);
      local_ac = (pointer)(uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |
                          uVar6 << 0x18);
      if (uVar28 < param_10) {
        if (plocal_symbols == (uchar *)0x0) {
          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;
          *(undefined4 *)((int)ppaVar31 + -0xc) = 0xea;
          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0a4;
          gold::do_gold_unreachable
                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
                     *(char **)((int)ppaVar31 + -8));
        }
        local_a4 = (Relobj *)
                   (uint)(ushort)(*(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) << 8 |
                                 *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe) >> 8);
        if (local_a4 < (Relobj *)0xff00) {
LAB_0021e61b:
          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);
          pRVar29 = (Relobj *)
                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18
                    );
          local_b4 = (int)&local_ac->first + (int)pRVar29;
          if (local_bd != '\0') {
            src_id.first = (Relobj *)object;
            src_id.second = (uint)local_a4;
            *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;
            *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;
            local_a0 = (Icf *)&src_id;
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e662;
            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>_>_>
                         **)((int)ppaVar31 + -0x10),
                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));
            bVar37 = true;
            if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0021e505;
LAB_0021e679:
            *(Icf **)((int)ppaVar31 + -0xc) = local_a0;
            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;
            src_id.first = (Relobj *)0xffffffff;
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e694;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));
            goto LAB_0021e520;
          }
        }
        else {
          if (local_a4 == (Relobj *)0xffff) {
            pXVar18 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_;
            if (pXVar18 == (Xindex *)0x0) {
              pp_Var17 = (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.
                         _vptr_Object;
              *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0x10) = object;
              p_Var11 = pp_Var17[0x1b];
              *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed7e;
              pXVar18 = (Xindex *)(*p_Var11)();
              (object->super_Sized_relobj<32,_true>).super_Relobj.super_Object.xindex_ = pXVar18;
            }
            *(uint *)((int)ppaVar31 + -8) = uVar28;
            *(Sized_relobj_file<32,_true> **)((int)ppaVar31 + -0xc) = object;
            *(Xindex **)((int)ppaVar31 + -0x10) = pXVar18;
                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e719;
            local_a4 = (Relobj *)
                       gold::Xindex::sym_xindex_to_shndx
                                 (*(Xindex **)((int)ppaVar31 + -0x10),
                                  *(Object **)((int)ppaVar31 + -0xc),*(uint *)((int)ppaVar31 + -8));
            _Var26._M_p = (pointer)extraout_EDX_00;
            goto LAB_0021e61b;
          }
          uVar6 = *(uint *)(plocal_symbols + uVar28 * 0x10 + 4);
          pRVar29 = (Relobj *)
                    (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18
                    );
          local_b4 = (int)&local_ac->first + (int)pRVar29;
          if (local_bd == '\0') goto LAB_0021e5a5;
          src_id.first = (Relobj *)0x0;
          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;
          src_id.second = 0;
          local_a0 = (Icf *)&src_id;
                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e4f1;
          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>_>_>
                       **)((int)ppaVar31 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));
          bVar37 = false;
          if ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0021e679;
LAB_0021e505:
          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;
          *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;
          src_id.first = (Relobj *)0x0;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e520;
          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                      ((int)ppaVar31 + -0x10),*(Symbol ***)((int)ppaVar31 + -0xc));
LAB_0021e520:
          src_id.first = pRVar29;
          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;
          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;
          local_2c = local_ac;
          src_id.second = 0;
          local_28._M_p = (pointer)((int)local_ac >> 0x1f);
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e550;
          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>_>_>
                       **)((int)ppaVar31 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));
          src_id.second = 0;
          uVar6 = *(uint *)prelocs;
          puVar5 = (local_cc->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          src_id.first = (Relobj *)
                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |
                         uVar6 << 0x18);
          if (puVar5 == (local_cc->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)ppaVar31 + -8) = local_a0;
            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;
            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed65;
            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>_> **)
                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),
                       *(ulonglong **)((int)ppaVar31 + -8));
          }
          else {
            *(Relobj **)puVar5 = src_id.first;
            *(uint *)((int)puVar5 + 4) = 0;
            (local_cc->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar5 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e598;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)
                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));
          _Var26._M_p = (pointer)extraout_EDX;
          if (!bVar37) goto LAB_0021e5a5;
        }
        if ((local_be != false) && ((plocal_symbols[uVar28 * 0x10 + 0xc] & 0xf) != 1)) {
          if ((*local_b8)->options_ == (General_options *)0x0) {
            *(pointer *)((int)ppaVar31 + -4) = _Var26._M_p;
            *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;
            *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;
            *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f11d;
            gold::do_gold_unreachable
                      (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
                       *(char **)((int)ppaVar31 + -8));
          }
          if (((*local_b8)->options_->shared_).value == false) {
            if (local_e4 - 4 < 0x37) {
                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();
              return;
            }
          }
          else {
            local_a0 = symtab->icf_;
            local_6c = object;
            uVar3 = *(ushort *)(plocal_symbols + uVar28 * 0x10 + 0xe);
            *(undefined4 *)((int)ppaVar31 + -0xc) = 1;
            *(undefined4 *)((int)ppaVar31 + -0x10) = 0;
            local_68 = (uint)(ushort)(uVar3 << 8 | uVar3 >> 8);
            *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_2;
            *(Sized_relobj_file<32,_true> ***)((int)ppaVar31 + -0x18) = &local_6c;
            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
            *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_2._M_h;
            *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;
            *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ec66;
            pVar41 = std::
                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                     ::
                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                               ();
            _Var26._M_p = pVar41._4_4_;
            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                        **)((int)ppaVar31 + -4);
          }
        }
        if ((Relobj *)data_shndx != local_a4) {
          local_b0 = (Output_segment *)object;
          puVar30 = ppaVar31;
LAB_0021e8f0:
          if ((*local_b8)->options_ == (General_options *)0x0) {
            puVar30[-2] = local_a8 + -0x5941e;
            puVar30[-3] = 0x5c;
            puVar30[-4] = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            puVar30[-5] = 0x21f0c2;
            gold::do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);
          }
          ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                      **)puVar30;
          if (((*local_b8)->options_->gc_sections_).value != false) {
            src_id_1.first = (Relobj *)object;
            p_Var23 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
            src_id_1.second = data_shndx;
            dst_id.first = (Relobj *)local_b0;
            dst_id.second = (uint)local_a4;
            p_Var7 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            p_Var22 = &p_Var23->_M_header;
            if (p_Var7 == (_Base_ptr)0x0) {
LAB_0021e980:
              puVar30[-4] = &local_74;
              local_74 = &src_id_1;
              puVar30[-5] = 0x21e99b;
              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>_>_>_>_>_>
                          *)puVar30[-4],(_Base_ptr)puVar30[-3],
                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],
                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);
              p_Var21 = local_98;
            }
            else {
              do {
                while ((p_Var21 = (_Rb_tree_header *)p_Var7,
                       object <= (Sized_relobj_file<32,_true> *)
                                 ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color &&
                       ((object != (Sized_relobj_file<32,_true> *)
                                   ((_Base_ptr)((int)p_Var21 + 0x10))->_M_color ||
                        (data_shndx <= ((size_t *)((int)p_Var21 + 0x10))[1]))))) {
                  p_Var7 = (p_Var21->_M_header)._M_left;
                  p_Var22 = &p_Var21->_M_header;
                  if ((p_Var21->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021e96a;
                }
                pp_Var1 = &(p_Var21->_M_header)._M_right;
                p_Var7 = *pp_Var1;
                p_Var21 = (_Rb_tree_header *)p_Var22;
              } while (*pp_Var1 != (_Base_ptr)0x0);
LAB_0021e96a:
              if (((p_Var23 == p_Var21) ||
                  (object < (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count)) ||
                 ((object == (Sized_relobj_file<32,_true> *)p_Var21->_M_node_count &&
                  (data_shndx < *(uint *)(p_Var21 + 1))))) goto LAB_0021e980;
            }
            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var21 + 1) + 4);
            puVar30[-3] = 1;
            puVar30[-4] = 0;
            puVar30[-5] = local_e8;
            puVar30[-6] = &dst_id;
            puVar30[-7] = __node_gen._M_h;
            puVar30[-8] = local_d0;
            puVar30[-9] = 0x21e9c7;
            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_b8)->target_;
            if (pTVar8 == (Target *)0x0) {
              puVar30[-3] = local_a8 + -0x59664;
              puVar30[-4] = 0x73;
              puVar30[-5] = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              puVar30[-6] = 0x21f101;
              gold::do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);
            }
            _Var26._M_p = (pointer)pTVar8->_vptr_Target[0x41];
            if ((General_options *)_Var26._M_p != (General_options *)(local_a8 + -0x1510f0)) {
              puVar30[-3] = local_b4;
              puVar30[-4] = local_a4;
              puVar30[-5] = local_b0;
              puVar30[-6] = data_shndx;
              puVar30[-7] = object;
              puVar30[-8] = symtab;
              puVar30[-9] = pTVar8;
              puVar30[-10] = 0x21eb71;
              (*(code *)_Var26._M_p)();
              _Var26._M_p = (pointer)extraout_EDX_02;
            }
            pp_Var17 = local_c4;
            ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                        **)(puVar30 + -1);
            if (local_c4 != (_func_int_varargs **)0x0) {
              local_a4 = (Relobj *)&local_2c;
              pGVar9 = symtab->gc_;
              puVar30[-5] = local_c4;
              local_a0 = (Icf *)&src_id;
              src_id.first = (Relobj *)&local_2c;
              puVar30[-6] = 0x21ea36;
              sVar16 = strlen((char *)puVar30[-5]);
              pIVar13 = local_a0;
              puVar30[-2] = 0;
              puVar30[-3] = (byte *)((int)pp_Var17 + sVar16);
              puVar30[-4] = pp_Var17;
              puVar30[-5] = local_a0;
              puVar30[-6] = 0x21ea4b;
              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
              _M_construct<char_const*>();
              puVar30[-3] = pIVar13;
              puVar30[-4] = &pGVar9->cident_sections_;
              puVar30[-5] = &local_9c;
              puVar30[-6] = 0x21ea5f;
              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>_>_>_>_>_>
                      *)puVar30[-5],
                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                     puVar30[-4]);
              pcVar14 = local_9c;
              if (src_id.first != local_a4) {
                puVar30[-6] = src_id.first;
                puVar30[-7] = 0x21ea82;
                operator_delete((void *)puVar30[-6]);
              }
              ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                          **)(puVar30 + -2);
              _Var26._M_p = (pointer)symtab->gc_;
              if ((One_option *)pcVar14 !=
                  &(((General_options *)_Var26._M_p)->version_initializer_).super_Struct_special.
                   option) {
                pcVar12 = (((General_options *)_Var26._M_p)->help_initializer_).super_Struct_special
                          .option.longname.field_2._M_local_buf + 8;
                src_id.first = (Relobj *)object;
                src_id.second = data_shndx;
                p_Var7 = *(_Base_ptr *)
                          ((int)&(((General_options *)_Var26._M_p)->help_initializer_).
                                 super_Struct_special.option.longname.field_2 + 0xc);
                p_Var22 = (_Base_ptr)pcVar12;
                if (p_Var7 == (_Base_ptr)0x0) {
LAB_0021ebb8:
                  puVar30[-6] = &local_70;
                  local_70 = local_a0;
                  puVar30[-7] = 0x21ebd6;
                  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>_>_>_>_>_>
                              *)puVar30[-6],(_Base_ptr)puVar30[-5],
                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],
                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);
                  p_Var23 = local_98;
                  _Var26._M_p = (pointer)extraout_EDX_03;
                }
                else {
                  do {
                    while ((p_Var23 = (_Rb_tree_header *)p_Var7,
                           object <= (Sized_relobj_file<32,_true> *)
                                     ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color &&
                           ((object != (Sized_relobj_file<32,_true> *)
                                       ((_Base_ptr)((int)p_Var23 + 0x10))->_M_color ||
                            (data_shndx <= ((size_t *)((int)p_Var23 + 0x10))[1]))))) {
                      p_Var7 = (p_Var23->_M_header)._M_left;
                      p_Var22 = &p_Var23->_M_header;
                      if ((p_Var23->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0021eae2;
                    }
                    pp_Var1 = &(p_Var23->_M_header)._M_right;
                    p_Var7 = *pp_Var1;
                    p_Var23 = (_Rb_tree_header *)p_Var22;
                  } while (*pp_Var1 != (_Base_ptr)0x0);
LAB_0021eae2:
                  if (((p_Var23 == (_Rb_tree_header *)pcVar12) ||
                      (object < (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count)) ||
                     ((object == (Sized_relobj_file<32,_true> *)p_Var23->_M_node_count &&
                      (data_shndx < *(uint *)(p_Var23 + 1))))) goto LAB_0021ebb8;
                }
                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                            **)(puVar30 + -2);
                puVar30 = puVar30 + -2;
                for (puVar10 = *(undefined4 **)(pcVar14 + 0x30); puVar10 != (undefined4 *)0x0;
                    puVar10 = (undefined4 *)*puVar10) {
                  *(undefined4 *)((int)puVar30 + -0xc) = 1;
                  *(undefined4 *)((int)puVar30 + -0x10) = 0;
                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;
                  *(undefined4 **)((int)puVar30 + -0x18) = puVar10 + 1;
                  *(char **)((int)puVar30 + -0x1c) = (char *)((int)(p_Var23 + 1) + 4);
                  *(undefined1 **)((int)puVar30 + -0x20) = local_d0;
                  *(undefined4 *)((int)puVar30 + -0x24) = 0x21eb3b;
                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var23 + 1) + 4);
                  pVar41 = 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>_>_>_>
                                     ();
                  _Var26._M_p = pVar41._4_4_;
                  ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                              **)((int)puVar30 + -4);
                  puVar30 = (undefined4 *)((int)puVar30 + -4);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar28 < object->local_symbol_count_) {
          src_id_1.first = (Relobj *)0x0;
LAB_0021ecef:
          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x596da;
          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x11c;
          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ed10;
          gold::do_gold_unreachable
                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
                     *(char **)((int)ppaVar31 + -8));
        }
        uVar28 = uVar28 - object->local_symbol_count_;
        ppSVar25 = (object->symbols_).
                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                   _M_start;
        local_a0 = (Icf *)(object->symbols_).
                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                          _M_finish;
        if ((uint)((int)local_a0 - (int)ppSVar25 >> 2) <= uVar28) {
          *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x59678;
          *(undefined4 *)((int)ppaVar31 + -0xc) = 0x8ad;
          *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f0e3;
          gold::do_gold_unreachable
                    (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
                     *(char **)((int)ppaVar31 + -8));
        }
        src_id_1.first = (Relobj *)ppSVar25[uVar28];
        if (src_id_1.first == (Relobj *)0x0) goto LAB_0021ecef;
        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {
          *(Relobj **)((int)ppaVar31 + -0xc) = src_id_1.first;
          *(Symbol_table **)((int)ppaVar31 + -0x10) = symtab;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21ecda;
          src_id_1.first =
               (Relobj *)
               gold::Symbol_table::resolve_forwards
                         (*(Symbol_table **)((int)ppaVar31 + -0x10),
                          *(Symbol **)((int)ppaVar31 + -0xc));
          ppSVar25 = extraout_EDX_04;
        }
        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {
          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)
                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;
          local_b4 = (int)&local_ac->first + (int)local_d8;
          if (((uint)local_b0->output_lists_[3].
                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                     _M_impl._M_end_of_storage & 1) == 0) {
            local_a4 = (Relobj *)
                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;
            ppSVar25 = (pointer)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);
            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;
            bVar37 = (byte)ppSVar25 < 2;
            bVar39 = (byte)ppSVar25 == 2;
            if (bVar39) {
              bVar37 = false;
              bVar39 = local_be == false;
              if (!bVar39) {
                if (bVar27 != 0) {
                  if ((*local_b8)->options_ == (General_options *)0x0) {
                    *(Relobj **)((int)ppaVar31 + -4) = src_id_1.first;
                    *(undefined ***)((int)ppaVar31 + -8) = local_a8 + -0x5941e;
                    *(undefined4 *)((int)ppaVar31 + -0xc) = 0x5c;
                    *(int *)((int)ppaVar31 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */
                    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21f18d;
                    gold::do_gold_unreachable
                              (*(char **)((int)ppaVar31 + -0x10),*(int *)((int)ppaVar31 + -0xc),
                               *(char **)((int)ppaVar31 + -8));
                  }
                  if ((((*local_b8)->options_->shared_).value == false) ||
                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {
                    ppSVar25 = (pointer)(local_e4 - 4);
                    bVar37 = ppSVar25 < (pointer)0x36;
                    bVar39 = ppSVar25 == (pointer)0x36;
                    if (ppSVar25 < (pointer)0x37) {
                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();
                      return;
                    }
                    goto _L5607;
                  }
                }
                local_a0 = symtab->icf_;
                *(undefined4 *)((int)ppaVar31 + -0xc) = 1;
                *(undefined4 *)((int)ppaVar31 + -0x10) = 0;
                *(__node_gen_type **)((int)ppaVar31 + -0x14) = &__node_gen_3;
                *(Output_segment ***)((int)ppaVar31 + -0x18) = &local_64;
                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
                *(__hashtable_alloc **)((int)ppaVar31 + -0x1c) = __node_gen_3._M_h;
                *(undefined1 **)((int)ppaVar31 + -0x20) = local_d0;
                *(undefined4 *)((int)ppaVar31 + -0x24) = 0x21ee8e;
                local_64 = local_b0;
                local_60 = local_a4;
                pVar41 = std::
                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                         ::
                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                                   ();
                ppSVar25 = pVar41._4_4_;
                bVar37 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppaVar31 + -0x20);
                bVar39 = ppaVar31 ==
                         (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                          **)0x4;
                ppaVar31 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                            **)((int)ppaVar31 + -4);
              }
            }
          }
          else {
            local_a4 = (Relobj *)0x0;
            bVar37 = false;
            bVar27 = 0;
            bVar39 = true;
            local_b0 = (Output_segment *)0x0;
          }
        }
        else {
          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          bVar27 = 0;
          local_a4 = (Relobj *)0x0;
          local_b0 = (Output_segment *)0x0;
          bVar37 = CARRY4((uint)local_ac,(uint)local_d8);
          local_b4 = (int)&local_ac->first + (int)local_d8;
          bVar39 = local_b4 == 0;
        }
_L5607:
        pp_Var17 = ((src_id_1.first)->super_Object)._vptr_Object;
        iVar20 = 8;
        pbVar33 = (byte *)((int)local_a8 + -0x19ca26);
        pp_Var35 = pp_Var17;
        do {
          if (iVar20 == 0) break;
          iVar20 = iVar20 + -1;
          bVar37 = *pbVar33 < *(byte *)pp_Var35;
          bVar39 = *pbVar33 == *(byte *)pp_Var35;
          pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;
          pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);
        } while (bVar39);
        bVar38 = false;
        bVar37 = (!bVar37 && !bVar39) == bVar37;
        if (bVar37) {
          local_c4 = pp_Var17 + 2;
          cVar24 = '\0';
        }
        else {
          iVar20 = 7;
          pbVar33 = (byte *)((int)local_a8 + -0x19ca1d);
          pp_Var35 = pp_Var17;
          do {
            if (iVar20 == 0) break;
            iVar20 = iVar20 + -1;
            bVar38 = *pbVar33 < *(byte *)pp_Var35;
            bVar37 = *pbVar33 == *(byte *)pp_Var35;
            pbVar33 = pbVar33 + (uint)bVar40 * -2 + 1;
            pp_Var35 = (_func_int_varargs **)((int)pp_Var35 + (uint)bVar40 * -2 + 1);
          } while (bVar37);
          cVar24 = (!bVar38 && !bVar37) - bVar38;
          pp_Var17 = (_func_int_varargs **)((int)pp_Var17 + 7);
          if (cVar24 != '\0') {
            pp_Var17 = local_c4;
          }
          local_c4 = pp_Var17;
        }
        _Var26._M_p = (pointer)CONCAT31((int3)((uint)ppSVar25 >> 8),cVar24);
        if (local_bd != '\0') {
          if (bVar27 == 0) {
            src_id.first = (Relobj *)0x0;
            src_id.second = 0;
          }
          else {
            src_id.first = (Relobj *)local_b0;
            src_id.second = (uint)local_a4;
          }
          *(Icf **)((int)ppaVar31 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)ppaVar31 + -0x10) = local_bc;
          local_a0 = (Icf *)&src_id;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e849;
          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>_>_>
                       **)((int)ppaVar31 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppaVar31 + -0xc));
          ppSVar25 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                     _M_impl._M_finish;
          if (ppSVar25 ==
              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
              _M_end_of_storage) {
            *(Section_id **)((int)ppaVar31 + -8) = &src_id_1;
            *(pointer *)((int)ppaVar31 + -0xc) = ppSVar25;
            *(Symbol_info **)((int)ppaVar31 + -0x10) = local_c8;
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21edcb;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
            _M_realloc_insert<gold::Symbol*_const&>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)ppaVar31 + -0x10),(iterator)*(Symbol ***)((int)ppaVar31 + -0xc),
                       *(Symbol ***)((int)ppaVar31 + -8));
          }
          else {
            *ppSVar25 = (Symbol *)src_id_1.first;
            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = ppSVar25 + 1;
          }
          *(Icf **)((int)ppaVar31 + -0xc) = local_a0;
          *(Addend_info **)((int)ppaVar31 + -0x10) = local_dc;
          src_id.first = local_d8;
          src_id.second = 0;
          local_2c = local_ac;
          local_28._M_p = (pointer)((int)local_ac >> 0x1f);
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e89d;
          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>_>_>
                       **)((int)ppaVar31 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)ppaVar31 + -0xc));
          src_id.second = 0;
          uVar6 = *(uint *)prelocs;
          puVar5 = (local_cc->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          src_id.first = (Relobj *)
                         (uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 |
                         uVar6 << 0x18);
          if (puVar5 == (local_cc->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)ppaVar31 + -8) = local_a0;
            *(pointer *)((int)ppaVar31 + -0xc) = puVar5;
            *(Offset_info **)((int)ppaVar31 + -0x10) = local_cc;
            *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21eded;
            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>_> **)
                        ((int)ppaVar31 + -0x10),(iterator)*(ulonglong **)((int)ppaVar31 + -0xc),
                       *(ulonglong **)((int)ppaVar31 + -8));
          }
          else {
            *(Relobj **)puVar5 = src_id.first;
            *(uint *)((int)puVar5 + 4) = 0;
            (local_cc->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar5 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)ppaVar31 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)ppaVar31 + -0x10) = local_e0;
          *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e8e5;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)
                      ((int)ppaVar31 + -0x10),*(uint **)((int)ppaVar31 + -0xc));
          _Var26._M_p = (pointer)extraout_EDX_01;
        }
        puVar30 = ppaVar31;
        if (bVar27 != 0) goto LAB_0021e8f0;
      }
LAB_0021e5a5:
      local_d4 = local_d4 + 1;
      prelocs = prelocs + 0xc;
    } while (reloc_count != local_d4);
  }
  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_ec) {
    *(pointer *)((int)ppaVar31 + -0x10) = src_section_name._M_dataplus._M_p;
    *(undefined4 *)((int)ppaVar31 + -0x14) = 0x21e6ba;
    operator_delete(*(void **)((int)ppaVar31 + -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: (identifier)) (parameter_declaration type: (primitive_type) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (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: (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: (type_identifier) 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: (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: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (pointer_expression argument: (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)))) (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: (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: (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: (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))) 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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (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: (type_identifier) declarator: (abstract_pointer_declarator 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: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (pointer_expression argument: (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: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (parenthesized_expression (identifier)) right: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (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))))) 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)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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))) (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: (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: (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))))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (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 (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)) 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: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (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: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (pointer_expression argument: (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: (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (pointer_expression argument: (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: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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))))) (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: (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))))) (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (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: (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)) 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: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (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: (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: (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: (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))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (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: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (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: (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))) 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: (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: (identifier) right: (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: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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 (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (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: (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: (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: (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))) (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: (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))) 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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_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: (identifier))) (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: (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: (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))) 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))) 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)))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) 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 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: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) arguments: (argument_list))) (return_statement)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (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)) 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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (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 declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (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 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))) 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: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (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: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) 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)) 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: (type_identifier) 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: (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 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: (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)) 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: (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)) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (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: (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: (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)) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (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)) 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (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: (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: (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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (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))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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))))))) (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: (identifier)))) 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: (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))))) (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: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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: (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: (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)) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (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: (parenthesized_expression (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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))) 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: (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)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) arguments: (argument_list))) (return_statement))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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)) 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 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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (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 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))) 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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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: (type_identifier) declarator: (abstract_pointer_declarator 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 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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (char_literal (escape_sequence)))) (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: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (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: (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)) 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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (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)) 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)))) 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: (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))) 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: (number_literal))) (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: (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: (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: (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))) 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))) 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)))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (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,code *param_4,uint param_5,
                 int param_6,uint *param_7,int param_8,undefined4 param_9,undefined4 param_10,
                 uint param_11,int param_12)

{
  code cVar1;
  ushort uVar2;
  undefined4 *puVar3;
  byte *pbVar4;
  int iVar5;
  int *piVar6;
  size_t sVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  char cVar11;
  undefined4 extraout_EDX;
  undefined4 uVar12;
  undefined4 extraout_EDX_00;
  undefined **ppuVar13;
  undefined4 extraout_EDX_01;
  undefined **extraout_EDX_02;
  int extraout_EDX_03;
  undefined4 extraout_EDX_04;
  undefined4 extraout_EDX_05;
  code *extraout_EDX_06;
  code *extraout_EDX_07;
  byte bVar14;
  uint uVar15;
  code *pcVar16;
  undefined1 *puVar17;
  code **ppcVar18;
  code *unaff_ESI;
  int iVar19;
  byte *pbVar20;
  code *pcVar21;
  byte *pbVar22;
  code *pcVar23;
  bool bVar24;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  undefined8 uVar28;
  ulonglong uVar29;
  int iStack_f0;
  code *local_ec;
  code **local_e8;
  uint local_e4;
  int local_e0;
  code *local_dc;
  code *local_d8;
  int local_d4;
  undefined1 *local_d0;
  code *local_cc;
  int local_c8;
  byte *local_c4;
  char local_be;
  char local_bd;
  int local_bc;
  int *local_b8;
  code *local_b4;
  code *local_b0;
  uint local_ac;
  undefined **local_a8;
  code *local_a4;
  code **local_a0;
  code *local_9c;
  int local_98;
  undefined1 local_94 [16];
  code **local_84;
  code **local_80;
  code *local_7c;
  code *local_78;
  code **local_74;
  code **local_70;
  code *local_6c;
  uint local_68;
  code *local_64;
  undefined4 local_60;
  code *local_5c;
  uint local_58;
  code *local_54;
  undefined4 local_50;
  code *local_4c [2];
  undefined1 local_44 [16];
  code *local_34;
  uint local_30;
  uint local_2c;
  int local_28;
  
  bVar27 = 0;
  local_a8 = &__DT_PLTGOT;
  if (param_6 == 9) {
    return;
  }
  local_b8 = &DAT_005ea7c8;
  iVar19 = *(int *)(DAT_005ea7c8 + 8);
  if (iVar19 == 0) {
    iStack_f0 = iVar19;
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(iVar19 + 0x5934) == 0) {
    local_ec = (code *)local_44;
    iStack_f0 = 0;
    local_4c[0] = local_ec;
    FUN_00072b90(local_4c,"","");
    ppcVar18 = &local_ec;
  }
  else {
    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);
    local_ec = (code *)local_44;
    ppcVar18 = (code **)&iStack_f0;
  }
  pcVar21 = local_4c[0];
  iVar19 = *local_b8;
  pcVar16 = *(code **)(iVar19 + 8);
  if (pcVar16 == (code *)0x0) {
    *(int *)((int)ppcVar18 + -4) = iVar19;
    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;
    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;
    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f139;
    FUN_002446e0();
  }
  if (*(uint *)(pcVar16 + 0x5934) == 0) {
LAB_0021e40f:
    local_bd = '\0';
    local_e0 = 0;
    local_cc = (code *)0x0;
    local_dc = (code *)0x0;
    local_c8 = 0;
    local_bc = 0;
  }
  else {
    local_a4 = (code *)&local_2c;
    local_34 = local_a4;
    pcVar16 = (code *)0xffffffff;
    if (local_4c[0] != (code *)0x0) {
      *(code **)((int)ppcVar18 + -0x10) = local_4c[0];
      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef87;
      sVar7 = strlen(*(char **)((int)ppcVar18 + -0x10));
      pcVar16 = pcVar21 + sVar7;
    }
    *(undefined4 *)((int)ppcVar18 + -4) = 0;
    *(code **)((int)ppcVar18 + -8) = pcVar16;
    local_a0 = &local_34;
    *(code **)((int)ppcVar18 + -0xc) = pcVar21;
    *(code ***)((int)ppcVar18 + -0x10) = local_a0;
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ef9f;
    FUN_00072b90();
    iVar19 = 5;
    bVar24 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppcVar18 + -0x10);
    bVar26 = ppcVar18 == (code **)0x0;
    ppuVar13 = local_a8 + -0x67293;
    pcVar16 = local_34;
    do {
      if (iVar19 == 0) break;
      iVar19 = iVar19 + -1;
      bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;
      bVar26 = *(code *)ppuVar13 == *pcVar16;
      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);
      pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;
    } while (bVar26);
    bVar25 = false;
    bVar24 = (!bVar24 && !bVar26) == bVar24;
    if (!bVar24) {
      iVar19 = 0xf;
      pcVar16 = (code *)((int)local_a8 + -0x19ca46);
      pcVar21 = local_34;
      do {
        unaff_ESI = pcVar16;
        if (iVar19 == 0) break;
        iVar19 = iVar19 + -1;
        unaff_ESI = pcVar16 + (uint)bVar27 * -2 + 1;
        bVar25 = (byte)*pcVar16 < (byte)*pcVar21;
        bVar24 = *pcVar16 == *pcVar21;
        pcVar16 = unaff_ESI;
        pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;
      } while (bVar24);
      if ((!bVar25 && !bVar24) != bVar25) {
        if (local_34 == local_a4) {
          iVar19 = *local_b8;
          pcVar16 = local_34;
        }
        else {
          *(code **)((int)ppcVar18 + -0x10) = local_34;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f073;
          FUN_003ae080();
          iVar19 = *local_b8;
          pcVar16 = extraout_EDX_07;
        }
        goto LAB_0021e40f;
      }
    }
    if (local_34 != local_a4) {
      *(code **)((int)ppcVar18 + -0x10) = local_34;
      *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f1a9;
      FUN_003ae080();
    }
    *(code ***)((int)ppcVar18 + -0xc) = local_a0;
    local_34 = param_4;
    local_30 = param_5;
    local_a0 = *(code ***)(param_2 + 0x15c);
    *(code ***)((int)ppcVar18 + -0x10) = local_a0 + 0x15;
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f014;
    local_bc = FUN_00074520();
    local_c8 = local_bc + 0xc;
    unaff_ESI = (code *)(local_bc + 0x18);
    pcVar16 = (code *)(local_bc + 0x24);
    local_e0 = local_bc + 0x30;
    iVar19 = *local_b8;
    local_bd = '\x01';
    local_dc = unaff_ESI;
    local_cc = pcVar16;
  }
  if (*(int *)(iVar19 + 8) == 0) {
    *(code **)((int)ppcVar18 + -4) = unaff_ESI;
    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;
    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;
    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f155;
    FUN_002446e0();
  }
  local_be = '\0';
  if (*(int *)(*(int *)(iVar19 + 8) + 0x5934) == 2) {
    *(undefined4 *)((int)ppcVar18 + -0x10) = param_1;
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eeab;
    local_be = FUN_0020d670();
    bVar24 = false;
    bVar26 = local_be == '\0';
    pcVar16 = extraout_EDX_06;
    if (!bVar26) {
      iVar19 = 0xc;
      local_be = '\0';
      ppuVar13 = local_a8 + -0x66894;
      pcVar16 = local_4c[0];
      do {
        if (iVar19 == 0) break;
        iVar19 = iVar19 + -1;
        bVar24 = (byte)*(code *)ppuVar13 < (byte)*pcVar16;
        bVar26 = *(code *)ppuVar13 == *pcVar16;
        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);
        pcVar16 = pcVar16 + (uint)bVar27 * -2 + 1;
      } while (bVar26);
      bVar25 = false;
      bVar24 = (!bVar24 && !bVar26) == bVar24;
      pcVar16 = local_4c[0];
      if (!bVar24) {
        iVar19 = 0x11;
        pcVar21 = (code *)((int)local_a8 + -0x19a243);
        pcVar23 = local_4c[0];
        do {
          if (iVar19 == 0) break;
          iVar19 = iVar19 + -1;
          bVar25 = (byte)*pcVar21 < (byte)*pcVar23;
          bVar24 = *pcVar21 == *pcVar23;
          pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;
          pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;
        } while (bVar24);
        bVar26 = false;
        bVar24 = (!bVar25 && !bVar24) == bVar25;
        if (!bVar24) {
          iVar19 = 0xc;
          pcVar21 = (code *)((int)local_a8 + -0x19a231);
          pcVar23 = local_4c[0];
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar26 = (byte)*pcVar21 < (byte)*pcVar23;
            bVar24 = *pcVar21 == *pcVar23;
            pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;
            pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;
          } while (bVar24);
          bVar25 = false;
          bVar24 = (!bVar26 && !bVar24) == bVar26;
          if (!bVar24) {
            iVar19 = 0x11;
            ppuVar13 = local_a8 + -0x66889;
            pcVar21 = local_4c[0];
            do {
              if (iVar19 == 0) break;
              iVar19 = iVar19 + -1;
              bVar25 = (byte)*(code *)ppuVar13 < (byte)*pcVar21;
              bVar24 = *(code *)ppuVar13 == *pcVar21;
              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar27 * -2 + 1);
              pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;
            } while (bVar24);
            bVar26 = false;
            bVar24 = (!bVar25 && !bVar24) == bVar25;
            if (!bVar24) {
              iVar19 = 9;
              pcVar21 = (code *)((int)local_a8 + -0x19a212);
              pcVar23 = local_4c[0];
              do {
                if (iVar19 == 0) break;
                iVar19 = iVar19 + -1;
                bVar26 = (byte)*pcVar21 < (byte)*pcVar23;
                bVar24 = *pcVar21 == *pcVar23;
                pcVar21 = pcVar21 + (uint)bVar27 * -2 + 1;
                pcVar23 = pcVar23 + (uint)bVar27 * -2 + 1;
              } while (bVar24);
              local_be = (!bVar26 && !bVar24) != bVar26;
            }
          }
        }
      }
    }
  }
  uVar28 = CONCAT44(pcVar16,local_a4);
  if (param_8 != 0) {
    local_c4 = (byte *)0x0;
    local_d0 = local_94;
    local_e8 = &local_78;
    local_d4 = 0;
    do {
      local_a4 = (code *)uVar28;
      uVar8 = param_7[1];
      local_e4 = uVar8 >> 0x18;
      uVar15 = ((uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18) >> 8;
      uVar8 = param_7[2];
      local_ac = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
      if (uVar15 < param_11) {
        if (param_12 == 0) {
          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;
          *(undefined4 *)((int)ppcVar18 + -0xc) = 0xea;
          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0a4;
          FUN_002446e0();
        }
        iVar19 = uVar15 * 0x10 + param_12;
        local_a4 = (code *)(uint)(ushort)(*(ushort *)(iVar19 + 0xe) << 8 |
                                         *(ushort *)(iVar19 + 0xe) >> 8);
        uVar28 = CONCAT44((int)((ulonglong)uVar28 >> 0x20),local_a4);
        if (local_a4 < 0xff00) {
LAB_0021e61b:
          local_a4 = (code *)uVar28;
          uVar8 = *(uint *)(iVar19 + 4);
          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |
                            uVar8 << 0x18);
          local_b4 = pcVar16 + local_ac;
          if (local_bd != '\0') {
            local_34 = param_4;
            local_30 = (uint)local_a4;
            local_a0 = &local_34;
            *(code ***)((int)ppcVar18 + -0xc) = local_a0;
            *(int *)((int)ppcVar18 + -0x10) = local_bc;
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e662;
            FUN_00073b00();
            bVar24 = true;
            if ((*(byte *)(iVar19 + 0xc) & 0xf) != 3) goto LAB_0021e505;
LAB_0021e679:
            *(code ***)((int)ppcVar18 + -0xc) = local_a0;
            *(int *)((int)ppcVar18 + -0x10) = local_c8;
            local_34 = (code *)0xffffffff;
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e694;
            FUN_00073ca0();
            goto LAB_0021e520;
          }
        }
        else {
          if (local_a4 == (code *)0xffff) {
            uVar8 = *(uint *)(param_4 + 0x30);
            if (uVar8 == 0) {
              uVar8 = *(uint *)param_4;
              *(code **)((int)ppcVar18 + -0x10) = param_4;
              pcVar16 = *(code **)(uVar8 + 0x6c);
              *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed7e;
              uVar8 = (*pcVar16)();
              *(uint *)(param_4 + 0x30) = uVar8;
            }
            *(uint *)((int)ppcVar18 + -8) = uVar15;
            *(code **)((int)ppcVar18 + -0xc) = param_4;
            *(uint *)((int)ppcVar18 + -0x10) = uVar8;
                    /* try { // try from 0021e714 to 0021f154 has its CatchHandler @ 0021f1b1 */
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e719;
            uVar28 = FUN_0028b7d0();
            goto LAB_0021e61b;
          }
          uVar8 = *(uint *)(iVar19 + 4);
          pcVar16 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |
                            uVar8 << 0x18);
          local_b4 = pcVar16 + local_ac;
          if (local_bd == '\0') goto LAB_0021e5a5;
          local_a0 = &local_34;
          local_34 = (code *)0x0;
          *(code ***)((int)ppcVar18 + -0xc) = local_a0;
          *(int *)((int)ppcVar18 + -0x10) = local_bc;
          local_30 = 0;
                    /* try { // try from 0021e4ec to 0021e693 has its CatchHandler @ 0021f1b1 */
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e4f1;
          FUN_00073b00();
          bVar24 = false;
          if ((*(byte *)(iVar19 + 0xc) & 0xf) == 3) goto LAB_0021e679;
LAB_0021e505:
          *(code ***)((int)ppcVar18 + -0xc) = local_a0;
          *(int *)((int)ppcVar18 + -0x10) = local_c8;
          local_34 = (code *)0x0;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e520;
          FUN_00073ca0();
LAB_0021e520:
          *(code ***)((int)ppcVar18 + -0xc) = local_a0;
          *(code **)((int)ppcVar18 + -0x10) = local_dc;
          local_2c = local_ac;
          local_28 = (int)local_ac >> 0x1f;
          local_30 = 0;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e550;
          local_34 = pcVar16;
          FUN_00073e70();
          local_30 = 0;
          uVar8 = *param_7;
          puVar3 = *(undefined4 **)(local_cc + 4);
          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |
                             uVar8 << 0x18);
          if (puVar3 == *(undefined4 **)(local_cc + 8)) {
            *(code ***)((int)ppcVar18 + -8) = local_a0;
            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;
            *(code **)((int)ppcVar18 + -0x10) = local_cc;
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed65;
            FUN_00072a40();
          }
          else {
            *puVar3 = local_34;
            puVar3[1] = 0;
            *(undefined4 **)(local_cc + 4) = puVar3 + 2;
          }
          local_54 = (code *)0x0;
          *(code ***)((int)ppcVar18 + -0xc) = &local_54;
          *(int *)((int)ppcVar18 + -0x10) = local_e0;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e598;
          FUN_00074020();
          uVar28 = CONCAT44(extraout_EDX,local_a4);
          if (!bVar24) goto LAB_0021e5a5;
        }
        local_a4 = (code *)uVar28;
        if ((local_be != '\0') && ((*(byte *)(iVar19 + 0xc) & 0xf) != 1)) {
          if (*(int *)(*local_b8 + 8) == 0) {
            *(int *)((int)ppcVar18 + -4) = (int)((ulonglong)uVar28 >> 0x20);
            *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;
            *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;
            *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f11d;
            FUN_002446e0();
          }
          if (*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') {
            if (local_e4 - 4 < 0x37) {
                    /* WARNING: Could not recover jumptable at 0x0021edb1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(local_a8[local_e4 - 0x59816] + (int)local_a8))();
              return;
            }
          }
          else {
            local_a0 = *(code ***)(param_2 + 0x15c);
            local_6c = param_4;
            uVar2 = *(ushort *)(iVar19 + 0xe);
            *(undefined4 *)((int)ppcVar18 + -0xc) = 1;
            *(undefined4 *)((int)ppcVar18 + -0x10) = 0;
            local_68 = (uint)(ushort)(uVar2 << 8 | uVar2 >> 8);
            *(code ****)((int)ppcVar18 + -0x14) = &local_84;
            *(code ***)((int)ppcVar18 + -0x18) = &local_6c;
            local_84 = local_a0 + 0xd;
            *(code ***)((int)ppcVar18 + -0x1c) = local_84;
            *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;
            *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ec66;
            FUN_00074280();
            uVar28 = CONCAT44(extraout_EDX_04,local_a4);
            ppcVar18 = (code **)((int)ppcVar18 + -4);
          }
        }
        local_a4 = (code *)uVar28;
        if ((code *)param_5 != local_a4) {
          local_b0 = param_4;
          puVar17 = (undefined1 *)ppcVar18;
LAB_0021e8f0:
          local_a4 = (code *)uVar28;
          if (*(int *)(*local_b8 + 8) == 0) {
            *(undefined ***)(puVar17 + -8) = local_a8 + -0x5941e;
            *(undefined4 *)(puVar17 + -0xc) = 0x5c;
            *(int *)(puVar17 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar17 + -0x14) = 0x21f0c2;
            FUN_002446e0();
          }
          ppcVar18 = (code **)puVar17;
          if (*(char *)(*(int *)(*local_b8 + 8) + 0x18b1) != '\0') {
            local_5c = param_4;
            iVar19 = *(int *)(param_2 + 0x158) + 0x14;
            local_58 = param_5;
            local_54 = local_b0;
            local_50 = local_a4;
            iVar5 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);
            iVar9 = iVar19;
            if (iVar5 == 0) {
LAB_0021e980:
              local_74 = &local_5c;
              *(code ****)(puVar17 + -0x10) = &local_74;
              *(undefined4 *)(puVar17 + -0x14) = 0x21e99b;
              FUN_00212060();
              iVar10 = local_98;
            }
            else {
              do {
                while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&
                       ((param_4 != *(code **)(iVar10 + 0x10) ||
                        (param_5 <= *(uint *)(iVar10 + 0x14)))))) {
                  iVar5 = *(int *)(iVar10 + 8);
                  iVar9 = iVar10;
                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0021e96a;
                }
                piVar6 = (int *)(iVar10 + 0xc);
                iVar5 = *piVar6;
                iVar10 = iVar9;
              } while (*piVar6 != 0);
LAB_0021e96a:
              if (((iVar19 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||
                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))))
              goto LAB_0021e980;
            }
            local_78 = (code *)(iVar10 + 0x18);
            *(undefined4 *)(puVar17 + -0xc) = 1;
            *(undefined4 *)(puVar17 + -0x10) = 0;
            *(code ***)(puVar17 + -0x14) = local_e8;
            *(code ***)(puVar17 + -0x18) = &local_54;
            *(code **)(puVar17 + -0x1c) = local_78;
            *(undefined1 **)(puVar17 + -0x20) = local_d0;
            *(undefined4 *)(puVar17 + -0x24) = 0x21e9c7;
            FUN_00074340();
            piVar6 = *(int **)(*local_b8 + 0xc);
            if (piVar6 == (int *)0x0) {
              *(undefined ***)(puVar17 + -0xc) = local_a8 + -0x59664;
              *(undefined4 *)(puVar17 + -0x10) = 0x73;
              *(int *)(puVar17 + -0x14) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar17 + -0x18) = 0x21f101;
              FUN_002446e0();
            }
            ppuVar13 = *(undefined ***)(*piVar6 + 0x104);
            if (ppuVar13 != local_a8 + -0x1510f0) {
              *(code **)(puVar17 + -0xc) = local_b4;
              *(code **)(puVar17 + -0x10) = local_a4;
              *(code **)(puVar17 + -0x14) = local_b0;
              *(uint *)(puVar17 + -0x18) = param_5;
              *(code **)(puVar17 + -0x1c) = param_4;
              *(int *)(puVar17 + -0x20) = param_2;
              *(int **)(puVar17 + -0x24) = piVar6;
              *(undefined4 *)(puVar17 + -0x28) = 0x21eb71;
              (*(code *)ppuVar13)();
              ppuVar13 = extraout_EDX_02;
            }
            pbVar4 = local_c4;
            uVar28 = CONCAT44(ppuVar13,local_a4);
            ppcVar18 = (code **)(puVar17 + -4);
            if (local_c4 != (byte *)0x0) {
              local_a4 = (code *)&local_2c;
              local_a0 = &local_34;
              iVar19 = *(int *)(param_2 + 0x158);
              *(byte **)(puVar17 + -0x14) = local_c4;
              local_34 = local_a4;
              *(undefined4 *)(puVar17 + -0x18) = 0x21ea36;
              sVar7 = strlen(*(char **)(puVar17 + -0x14));
              ppcVar18 = local_a0;
              *(undefined4 *)(puVar17 + -8) = 0;
              *(byte **)(puVar17 + -0xc) = pbVar4 + sVar7;
              *(byte **)(puVar17 + -0x10) = pbVar4;
              *(code ***)(puVar17 + -0x14) = local_a0;
              *(undefined4 *)(puVar17 + -0x18) = 0x21ea4b;
              FUN_00072b90();
              *(code ***)(puVar17 + -0xc) = ppcVar18;
              *(int *)(puVar17 + -0x10) = iVar19 + 0x44;
              *(code ***)(puVar17 + -0x14) = &local_9c;
              *(undefined4 *)(puVar17 + -0x18) = 0x21ea5f;
              FUN_00094bd0();
              pcVar16 = local_9c;
              if (local_34 != local_a4) {
                *(code **)(puVar17 + -0x18) = local_34;
                *(undefined4 *)(puVar17 + -0x1c) = 0x21ea82;
                FUN_003ae080();
              }
              ppcVar18 = (code **)(puVar17 + -8);
              iVar19 = *(int *)(param_2 + 0x158);
              uVar28 = CONCAT44(iVar19,local_a4);
              if (pcVar16 != (code *)(iVar19 + 0x48)) {
                local_34 = param_4;
                local_30 = param_5;
                iVar5 = *(int *)(iVar19 + 0x18);
                iVar9 = iVar19 + 0x14;
                if (*(int *)(iVar19 + 0x18) == 0) {
LAB_0021ebb8:
                  *(code ****)(puVar17 + -0x18) = &local_70;
                  local_70 = local_a0;
                  *(undefined4 *)(puVar17 + -0x1c) = 0x21ebd6;
                  FUN_00212060();
                  iVar10 = local_98;
                  iVar19 = extraout_EDX_03;
                }
                else {
                  do {
                    while ((iVar10 = iVar5, param_4 <= *(code **)(iVar10 + 0x10) &&
                           ((param_4 != *(code **)(iVar10 + 0x10) ||
                            (param_5 <= *(uint *)(iVar10 + 0x14)))))) {
                      iVar5 = *(int *)(iVar10 + 8);
                      iVar9 = iVar10;
                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0021eae2;
                    }
                    piVar6 = (int *)(iVar10 + 0xc);
                    iVar5 = *piVar6;
                    iVar10 = iVar9;
                  } while (*piVar6 != 0);
LAB_0021eae2:
                  if (((iVar10 == iVar19 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||
                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(uint *)(iVar10 + 0x14)))
                     )) goto LAB_0021ebb8;
                }
                uVar28 = CONCAT44(iVar19,local_a4);
                ppcVar18 = (code **)(puVar17 + -8);
                puVar17 = puVar17 + -8;
                for (puVar3 = *(undefined4 **)(pcVar16 + 0x30); puVar3 != (undefined4 *)0x0;
                    puVar3 = (undefined4 *)*puVar3) {
                  *(undefined4 *)(puVar17 + -0xc) = 1;
                  *(undefined4 *)(puVar17 + -0x10) = 0;
                  *(code ***)(puVar17 + -0x14) = &local_7c;
                  *(undefined4 **)(puVar17 + -0x18) = puVar3 + 1;
                  *(code **)(puVar17 + -0x1c) = (code *)(iVar10 + 0x18);
                  *(undefined1 **)(puVar17 + -0x20) = local_d0;
                  *(undefined4 *)(puVar17 + -0x24) = 0x21eb3b;
                  local_7c = (code *)(iVar10 + 0x18);
                  FUN_00074340();
                  uVar28 = CONCAT44(extraout_EDX_01,local_a4);
                  ppcVar18 = (code **)(puVar17 + -4);
                  puVar17 = puVar17 + -4;
                }
              }
            }
          }
        }
      }
      else {
        if (uVar15 < *(uint *)(param_4 + 0xb0)) {
          local_5c = (code *)0x0;
LAB_0021ecef:
          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x596da;
          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x11c;
          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ed10;
          FUN_002446e0();
        }
        uVar15 = uVar15 - *(uint *)(param_4 + 0xb0);
        uVar8 = *(uint *)(param_4 + 0xbc);
        local_a0 = *(code ***)(param_4 + 0xc0);
        if ((uint)((int)((int)local_a0 - uVar8) >> 2) <= uVar15) {
          *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x59678;
          *(undefined4 *)((int)ppcVar18 + -0xc) = 0x8ad;
          *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f0e3;
          FUN_002446e0();
        }
        local_5c = *(code **)(uVar8 + uVar15 * 4);
        uVar29 = CONCAT44(uVar8,local_5c);
        if (local_5c == (code *)0x0) goto LAB_0021ecef;
        if (((byte)local_5c[0x2a] & 0x10) != 0) {
          *(code **)((int)ppcVar18 + -0xc) = local_5c;
          *(int *)((int)ppcVar18 + -0x10) = param_2;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21ecda;
          uVar29 = FUN_0034cd90();
        }
        local_5c = (code *)uVar29;
        if (((byte)local_5c[0x2a] & 7) == 0) {
          local_d8 = *(code **)(local_5c + 0x30);
          local_b0 = *(code **)(local_5c + 8);
          local_b4 = local_d8 + local_ac;
          if (((byte)local_b0[0x2c] & 1) == 0) {
            cVar1 = local_5c[0x28];
            local_a4 = *(code **)(local_5c + 0xc);
            bVar14 = (byte)local_5c[0x2b] >> 5 & 1;
            bVar24 = ((byte)cVar1 & 0xf) < 2;
            bVar26 = ((byte)cVar1 & 0xf) == 2;
            uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;
            if (bVar26) {
              bVar24 = false;
              bVar26 = local_be == '\0';
              uVar29 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;
              if (!bVar26) {
                if (bVar14 != 0) {
                  if (*(int *)(*local_b8 + 8) == 0) {
                    *(code **)((int)ppcVar18 + -4) = local_5c;
                    *(undefined ***)((int)ppcVar18 + -8) = local_a8 + -0x5941e;
                    *(undefined4 *)((int)ppcVar18 + -0xc) = 0x5c;
                    *(int *)((int)ppcVar18 + -0x10) = (int)local_a8 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0021f188 to 0021f18c has its CatchHandler @ 0021f1b1 */
                    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21f18d;
                    FUN_002446e0();
                  }
                  if ((*(char *)(*(int *)(*local_b8 + 8) + 0x1a25) == '\0') ||
                     (((byte)local_5c[0x29] & 3) == 0)) {
                    uVar8 = local_e4 - 4;
                    bVar24 = uVar8 < 0x36;
                    bVar26 = uVar8 == 0x36;
                    uVar29 = CONCAT44(uVar8,local_5c);
                    if (uVar8 < 0x37) {
                    /* WARNING: Could not recover jumptable at 0x0021ee39. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a8[local_e4 - 0x597df] + (int)local_a8))();
                      return;
                    }
                    goto LAB_0021e7e0;
                  }
                }
                local_a0 = *(code ***)(param_2 + 0x15c);
                *(undefined4 *)((int)ppcVar18 + -0xc) = 1;
                *(undefined4 *)((int)ppcVar18 + -0x10) = 0;
                *(code ****)((int)ppcVar18 + -0x14) = &local_80;
                *(code ***)((int)ppcVar18 + -0x18) = &local_64;
                local_80 = local_a0 + 0xd;
                *(code ***)((int)ppcVar18 + -0x1c) = local_80;
                *(undefined1 **)((int)ppcVar18 + -0x20) = local_d0;
                *(undefined4 *)((int)ppcVar18 + -0x24) = 0x21ee8e;
                local_64 = local_b0;
                local_60 = local_a4;
                FUN_00074280();
                bVar24 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppcVar18 + -0x20);
                bVar26 = ppcVar18 == (code **)0x4;
                ppcVar18 = (code **)((int)ppcVar18 + -4);
                uVar29 = CONCAT44(extraout_EDX_05,local_5c);
              }
            }
          }
          else {
            local_a4 = (code *)0x0;
            bVar24 = false;
            bVar14 = 0;
            bVar26 = true;
            local_b0 = (code *)0x0;
          }
        }
        else {
          local_d8 = *(code **)(local_5c + 0x30);
          bVar14 = 0;
          local_a4 = (code *)0x0;
          local_b0 = (code *)0x0;
          bVar24 = CARRY4(local_ac,(uint)local_d8);
          local_b4 = local_d8 + local_ac;
          bVar26 = local_b4 == (code *)0x0;
        }
LAB_0021e7e0:
        local_5c = (code *)uVar29;
        pbVar4 = *(byte **)local_5c;
        iVar19 = 8;
        pbVar20 = (byte *)((int)local_a8 + -0x19ca26);
        pbVar22 = pbVar4;
        do {
          if (iVar19 == 0) break;
          iVar19 = iVar19 + -1;
          bVar24 = *pbVar20 < *pbVar22;
          bVar26 = *pbVar20 == *pbVar22;
          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;
        } while (bVar26);
        bVar25 = false;
        bVar24 = (!bVar24 && !bVar26) == bVar24;
        if (bVar24) {
          cVar11 = '\0';
          pbVar4 = pbVar4 + 8;
        }
        else {
          iVar19 = 7;
          pbVar20 = (byte *)((int)local_a8 + -0x19ca1d);
          pbVar22 = pbVar4;
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar25 = *pbVar20 < *pbVar22;
            bVar24 = *pbVar20 == *pbVar22;
            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
            pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;
          } while (bVar24);
          cVar11 = (!bVar25 && !bVar24) - bVar25;
          pbVar4 = pbVar4 + 7;
          if (cVar11 != '\0') {
            pbVar4 = local_c4;
          }
        }
        local_c4 = pbVar4;
        uVar12 = CONCAT31((int3)(uVar29 >> 0x28),cVar11);
        if (local_bd != '\0') {
          if (bVar14 == 0) {
            local_34 = (code *)0x0;
            local_30 = 0;
          }
          else {
            local_34 = local_b0;
            local_30 = (uint)local_a4;
          }
          local_a0 = &local_34;
          *(code ***)((int)ppcVar18 + -0xc) = local_a0;
          *(int *)((int)ppcVar18 + -0x10) = local_bc;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e849;
          FUN_00073b00();
          puVar3 = *(undefined4 **)(local_c8 + 4);
          if (puVar3 == *(undefined4 **)(local_c8 + 8)) {
            *(code ***)((int)ppcVar18 + -8) = &local_5c;
            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;
            *(int *)((int)ppcVar18 + -0x10) = local_c8;
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21edcb;
            FUN_000726c0();
          }
          else {
            *puVar3 = local_5c;
            *(undefined4 **)(local_c8 + 4) = puVar3 + 1;
          }
          *(code ***)((int)ppcVar18 + -0xc) = local_a0;
          *(code **)((int)ppcVar18 + -0x10) = local_dc;
          local_34 = local_d8;
          local_30 = 0;
          local_2c = local_ac;
          local_28 = (int)local_ac >> 0x1f;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e89d;
          FUN_00073e70();
          local_30 = 0;
          uVar8 = *param_7;
          puVar3 = *(undefined4 **)(local_cc + 4);
          local_34 = (code *)(uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 |
                             uVar8 << 0x18);
          if (puVar3 == *(undefined4 **)(local_cc + 8)) {
            *(code ***)((int)ppcVar18 + -8) = local_a0;
            *(undefined4 **)((int)ppcVar18 + -0xc) = puVar3;
            *(code **)((int)ppcVar18 + -0x10) = local_cc;
            *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21eded;
            FUN_00072a40();
          }
          else {
            *puVar3 = local_34;
            puVar3[1] = 0;
            *(undefined4 **)(local_cc + 4) = puVar3 + 2;
          }
          local_54 = (code *)0x0;
          *(code ***)((int)ppcVar18 + -0xc) = &local_54;
          *(int *)((int)ppcVar18 + -0x10) = local_e0;
          *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e8e5;
          FUN_00074020();
          uVar12 = extraout_EDX_00;
        }
        uVar28 = CONCAT44(uVar12,local_a4);
        puVar17 = (undefined1 *)ppcVar18;
        if (bVar14 != 0) goto LAB_0021e8f0;
      }
LAB_0021e5a5:
      local_a4 = (code *)uVar28;
      local_d4 = local_d4 + 1;
      param_7 = param_7 + 3;
    } while (param_8 != local_d4);
  }
  if (local_4c[0] != local_ec) {
    *(code **)((int)ppcVar18 + -0x10) = local_4c[0];
    *(undefined4 *)((int)ppcVar18 + -0x14) = 0x21e6ba;
    FUN_003ae080();
  }
  return;
}

