
/* WARNING: Removing unreachable block (ram,0x0008df80) */
/* WARNING: Removing unreachable block (ram,0x0008ddd6) */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void scan_relocs(Target_powerpc<64,_false> * this, Symbol_table *
   symtab, Layout * layout, Sized_relobj_file<64,_false> * 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_2af53c::Target_powerpc<64,_false>::scan_relocs
          (Target_powerpc<64,_false> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<64,_false> *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)

{
  pointer ppOVar1;
  pointer ppSVar2;
  Layout *this_00;
  size_type sVar3;
  __bucket_type *pp_Var4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  pointer pBVar9;
  pointer pcVar10;
  uint *puVar11;
  pointer pBVar12;
  uint uVar13;
  iterator __position;
  Elf_Swxword EVar14;
  Tls_get_addr TVar15;
  bool bVar16;
  byte bVar17;
  uint uVar18;
  Layout *pLVar19;
  int iVar20;
  undefined1 *puVar21;
  char *pcVar22;
  Xindex *this_01;
  Sized_symbol<64> *pSVar23;
  Symbols_data *pSVar24;
  uint uVar25;
  Symbol *pSVar26;
  uchar *puVar27;
  undefined4 *puVar28;
  pointer pBVar29;
  int iVar30;
  char cVar31;
  Layout *pLVar32;
  pointer pBVar33;
  pointer pBVar34;
  uint uVar35;
  uchar **ppuVar36;
  anon_enum_32 insn_check;
  int unaff_EDI;
  int iVar37;
  Elf_WXword EVar38;
  Layout *in_stack_fffffd98;
  Layout *data_shndx_00;
  Layout *in_stack_fffffd9c;
  Symbol *in_stack_fffffda0;
  Powerpc_relobj<64,_false> *in_stack_fffffda4;
  Symbol *in_stack_fffffda8;
  uint *in_stack_fffffdac;
  uint *puVar39;
  pointer local_248;
  pointer local_240;
  pointer local_238;
  size_t local_1ec;
  Reltype reloc;
  __node_gen_type __node_gen;
  section_size_type slen;
  Symbol_location loc;
  Scan scan;
  Symbol *local_154;
  Symbol local_14c [5];
  Sym<64,_false> lsym;
  
  __x86_get_pc_thunk_di();
  iVar37 = unaff_EDI + 0x3863e7;
  if (this->plt_localentry0_init_ == false) {
    cVar31 = false;
    if ((this->field_0x8 & 2) != 0) {
      iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
      if (iVar20 == 0) {
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable
                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +
                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));
      }
      cVar31 = *(char *)(iVar20 + 0x2b60);
      if ((cVar31 != '\0') && (cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0')) {
        in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6);
        in_stack_fffffd9c = (Layout *)0x0;
        pSVar26 = gold::Symbol_table::lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);
        if (pSVar26 == (Symbol *)0x0) {
          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);
          gold::gold_warning(pcVar22);
        }
      }
    }
    this->plt_localentry0_ = (bool)cVar31;
    this->plt_localentry0_init_ = true;
  }
  if (sh_type == 9) {
    pcVar10 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.
              _M_p;
    pcVar22 = (char *)gettext(unaff_EDI + 0x269cc7);
    gold::gold_error(pcVar22,pcVar10);
    return;
  }
  scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;
  if (reloc_count != 0) {
    local_1ec = 0;
    do {
      TVar15 = scan.super_Track_tls.tls_get_addr_state_;
      reloc.p_ = (Rela_data<64> *)prelocs;
      if ((needs_special_offset_handling) &&
         (bVar16 = gold::Output_section::is_input_address_mapped
                             (output_section,(Relobj *)object,data_shndx,*(off_t *)prelocs), !bVar16
         )) goto _L18143;
      data_shndx_00 = *(Layout **)&(reloc.p_)->r_info;
      uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);
      if (uVar35 < param_10) {
        if (plocal_symbols == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable
                    ((char *)(unaff_EDI + 0x2693fc),0x4d,(char *)(unaff_EDI + 0x268377));
        }
        lsym.p_ = (Sym_data<64> *)(plocal_symbols + uVar35 * 0x18);
        uVar18 = (uint)(lsym.p_)->st_shndx;
        if (uVar18 < 0xff00) {
LAB_0008de38:
          if (uVar18 == 0) goto LAB_0008dd74;
          ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                    ._M_impl._M_start;
          if ((uint)((int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                          ._M_impl._M_finish - (int)ppOVar1 >> 2) <= uVar18) {
                    /* WARNING: Subroutine does not return */
            gold::do_gold_unreachable
                      ((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b));
          }
          if (ppOVar1[uVar18] != (Output_section *)0x0) goto LAB_0008dd74;
          bVar16 = gold::Symbol_table::is_section_folded(symtab,(Relobj *)object,uVar18);
          in_stack_fffffda0 = (Symbol *)(uint)!bVar16;
        }
        else {
          if (uVar18 == 0xffff) {
            this_01 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;
            if (this_01 == (Xindex *)0x0) {
              this_01 = (Xindex *)
                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.
                          _vptr_Object[0x1b])(object);
              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;
            }
                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */
            uVar18 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)object,uVar35);
            goto LAB_0008de38;
          }
LAB_0008dd74:
          in_stack_fffffda0 = (Symbol *)0x0;
        }
        in_stack_fffffd9c = (Layout *)&lsym;
                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */
        Scan::local((Scan *)this,(Symbol_table *)object,(Layout *)data_shndx,
                    (Target_powerpc<64,_false> *)output_section,
                    (Sized_relobj_file<64,_false> *)&reloc,(uint)data_shndx_00,
                    (Output_section *)in_stack_fffffd9c,(Rela<64,_false> *)in_stack_fffffda0,
                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,
                    SUB41(in_stack_fffffdac,0));
        in_stack_fffffd98 = data_shndx_00;
      }
      else {
        if (uVar35 < object->local_symbol_count_) {
LAB_00090230:
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable
                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));
        }
        uVar35 = uVar35 - object->local_symbol_count_;
        ppSVar2 = (object->symbols_).
                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start
        ;
        if ((uint)((int)(object->symbols_).
                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                        _M_finish - (int)ppSVar2 >> 2) <= uVar35) {
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable
                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));
        }
        pLVar19 = (Layout *)ppSVar2[uVar35];
        if (pLVar19 == (Layout *)0x0) goto LAB_00090230;
        if (((uint)(pLVar19->namepool_).key_to_offset_.chunks_.
                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                   ._M_impl._M_finish & 0x100000) == 0) {
          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.
                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&
              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)
              )) && ((data_shndx_00 != (Layout *)0x3c &&
                     ((undefined1 *)0x1 <
                      (undefined1 *)
                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.
                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;
LAB_0008e048:
          if ((Layout *)this->tls_get_addr_ != pLVar19) {
            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;
            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;
            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;
            goto LAB_0008e080;
          }
          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;
          pLVar32 = pLVar19;
          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))
          goto LAB_0008dfbd;
        }
        else {
          in_stack_fffffd98 = pLVar19;
          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);
          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header
                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||
                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <
                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||
              ((undefined1 *)
               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.
                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))
          goto LAB_0008e048;
LAB_0008df60:
          pLVar32 = (Layout *)this->tls_get_addr_;
LAB_0008dfbd:
          this_00 = (Layout *)this->tls_get_addr_opt_;
          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {
LAB_0008e080:
            this_00 = pLVar19;
          }
          if (data_shndx_00 == (Layout *)0x6b) {
            gold::Symbol::final_value_is_known((Symbol *)this_00);
            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
            if (iVar20 == 0) {
                    /* WARNING: Subroutine does not return */
              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);
            }
LAB_0008e0c3:
            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;
            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {
              scan.super_Track_tls.tls_get_addr_state_ = SKIP;
            }
          }
          else {
            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;
            if (data_shndx_00 == (Layout *)0x6c) {
              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
              if (iVar20 == 0) {
                    /* WARNING: Subroutine does not return */
                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);
              }
              goto LAB_0008e0c3;
            }
          }
          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.
                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                             ._M_impl._M_finish & 0xf;
          if (bVar17 == 10) {
            bVar16 = Scan::reloc_needs_plt_for_ifunc
                               ((Target_powerpc<64,_false> *)0x1,
                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,
                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));
            if (bVar16) {
              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);
              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);
              uVar18 = (uint)data_shndx_00 & 0x7fffffff;
              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);
              uVar7 = (undefined4)(reloc.p_)->r_addend;
              uVar8 = (undefined4)(reloc.p_)->r_offset;
              pBVar9 = (this->branch_info_).
                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                       ._M_impl._M_finish;
              if (pBVar9 == (this->branch_info_).
                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                            ._M_impl._M_end_of_storage) {
                pBVar12 = (this->branch_info_).
                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                          ._M_impl._M_start;
                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;
                if (uVar25 == 0) {
                  local_240 = (pointer)0x20;
LAB_0008f9a2:
                  local_238 = (pointer)operator_new((uint)local_240);
                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);
                  local_240 = local_238 + 1;
                }
                else {
                  uVar13 = uVar25 * 2;
                  if (uVar13 < uVar25) {
                    local_240 = (pointer)0xffffffe0;
                    goto LAB_0008f9a2;
                  }
                  local_240 = (pointer)0xffffffe0;
                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;
                  if (uVar13 != 0) {
                    local_240 = (pointer)(uVar25 << 6);
                    goto LAB_0008f9a2;
                  }
                  local_240 = (pointer)0x20;
                  local_248 = (pointer)0x0;
                  local_238 = (pointer)0x0;
                }
                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);
                *puVar28 = object;
                puVar28[3] = uVar6;
                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;
                puVar28[1] = data_shndx;
                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);
                puVar28[2] = uVar8;
                puVar28[7] = uVar5;
                puVar28[5] = uVar35;
                puVar28[6] = uVar7;
                pBVar29 = local_238;
                pBVar33 = pBVar12;
                if (pBVar9 != pBVar12) {
                  do {
                    pBVar34 = pBVar33 + 1;
                    pBVar29->object_ = pBVar33->object_;
                    pBVar29->shndx_ = pBVar33->shndx_;
                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;
                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =
                         *(undefined4 *)((int)&pBVar33->offset_ + 4);
                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;
                    pBVar29->r_sym_ = pBVar33->r_sym_;
                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;
                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =
                         *(undefined4 *)((int)&pBVar33->addend_ + 4);
                    pBVar29 = pBVar29 + 1;
                    pBVar33 = pBVar34;
                  } while (pBVar9 != pBVar34);
                  local_240 = (pointer)((int)&local_238[2].object_ +
                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));
                }
                if (pBVar12 != (pointer)0x0) {
                  operator_delete(pBVar12);
                }
                (this->branch_info_).
                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                ._M_impl._M_start = local_238;
                (this->branch_info_).
                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                ._M_impl._M_finish = local_240;
                (this->branch_info_).
                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                ._M_impl._M_end_of_storage = local_248;
              }
              else {
                *(undefined4 *)&pBVar9->offset_ = uVar8;
                uVar25 = *(uint *)&pBVar9->field_0x10;
                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;
                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;
                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;
                pBVar9->shndx_ = data_shndx;
                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;
                pBVar9->r_sym_ = uVar35;
                *(undefined4 *)&pBVar9->addend_ = uVar7;
                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;
                (this->branch_info_).
                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                ._M_impl._M_finish = pBVar9 + 1;
              }
              if ((undefined1 *)
                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.
                         _M_header._M_left + 1U) < (undefined1 *)0x3) {
                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;
                __position.super__Bit_iterator_base._M_p =
                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;
                __position.super__Bit_iterator_base._M_offset =
                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;
                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;
                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;
                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +
                         ((int)puVar39 - (int)pSVar24) * 8;
                uVar35 = iVar20 - (int)puVar11;
                if (uVar35 <= data_shndx) {
                  iVar30 = (int)puVar11 + data_shndx + 1;
                  if (data_shndx + 1 < uVar35) {
                    iVar20 = iVar30 + 0x1f;
                    if (-1 < iVar30) {
                      iVar20 = iVar30;
                    }
                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);
                    uVar35 = iVar30 % 0x20;
                    if ((int)uVar35 < 0) {
                      uVar35 = uVar35 + 0x20;
                      ppuVar36 = ppuVar36 + -1;
                    }
                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =
                         (uint *)ppuVar36;
                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;
                  }
                  else {
                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert
                              ((vector<bool,_std::allocator<bool>_> *)
                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,
                               iVar30 - iVar20,false);
                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;
                    in_stack_fffffdac = puVar39;
                  }
                }
                (&pSVar24->section_headers_data)[data_shndx >> 5] =
                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |
                              1 << ((byte)data_shndx & 0x1f));
              }
              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,
                             in_stack_fffffd9c,in_stack_fffffda0);
              if (data_shndx_00 < (Layout *)0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();
                return;
              }
            }
            else if (data_shndx_00 < (Layout *)0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();
              return;
            }
          }
          else if (data_shndx_00 < (Layout *)0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();
            return;
          }
          gold::Symbol::demangled_name((Symbol *)this_00);
          in_stack_fffffd98 =
               (Layout *)
               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.
               _M_p;
          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);
          in_stack_fffffd9c = data_shndx_00;
          in_stack_fffffda0 = local_154;
                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */
          gold::gold_error(pcVar22);
          if (local_154 != local_14c) {
            operator_delete(local_154);
          }
          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
          if (iVar20 == 0) {
                    /* WARNING: Subroutine does not return */
            gold::do_gold_unreachable
                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +
                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));
          }
          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;
          if (data_shndx ==
              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.
              _M_allocated_capacity) {
            if (data_shndx_00 != (Layout *)0x26) {
LAB_0008e450:
                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */
              in_stack_fffffda0 = (Symbol *)0x8e463;
              Powerpc_relobj<64,_false>::set_no_toc_opt
                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));
              goto joined_r0x0008e46f;
            }
            if (bVar17 == 10) {
              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {
                bVar17 = *(byte *)(iVar20 + 0x2931);
joined_r0x0008e445:
                if (bVar17 == 0) goto LAB_0008e248;
              }
              goto LAB_0008e450;
            }
            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {
              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.
                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                                       ._M_impl._M_finish + 2);
              if ((bVar17 & 7) == 0) {
                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->
                        _M_allocated_capacity;
                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.
                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                                         ._M_impl._M_finish + 3) >> 5 & 1;
                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;
                if (sVar3 == 0) goto joined_r0x0008e445;
              }
              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;
            }
          }
          else {
joined_r0x0008e46f:
            if ((undefined1 *)
                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.
                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {
                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +
                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.
                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +
                        iVar37))();
              return;
            }
            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);
            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))
                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.
                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                           ._M_impl._M_finish & 0x70000) == 0)) &&
               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,
                ((uint)pp_Var4[0xb] & 1) == 0 &&
                (pLVar19 = (Layout *)
                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->
                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {
              in_stack_fffffda0 = (Symbol *)0x8e5d1;
              pSVar23 = gold::Symbol_table::get_sized_symbol<64>
                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);
              uVar35 = (uint)pSVar23->value_;
              EVar14 = (reloc.p_)->r_addend;
              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +
                       *(int *)((int)&(reloc.p_)->r_addend + 4) +
                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);
              if ((*pp_Var4)[0xf]._M_nxt ==
                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {
                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size
                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),
                                    (uint)pLVar19);
                in_stack_fffffd98 = pLVar19;
              }
              else {
                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);
                in_stack_fffffd98 = pLVar19;
              }
              uVar25 = (uint)(EVar38 >> 0x20);
              if ((data_shndx_00 != (Layout *)0x32) &&
                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))
              {
                if (data_shndx_00 == (Layout *)0x40) {
                  in_stack_fffffd9c = (Layout *)&slen;
                  in_stack_fffffda0 = (Symbol *)0x0;
                  in_stack_fffffd98 = (Layout *)data_shndx;
                  puVar27 = gold::Object::section_contents
                                      ((Object *)object,data_shndx,
                                       (section_size_type *)in_stack_fffffd9c,false);
                  iVar20 = (int)(reloc.p_)->r_offset;
                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {
                    /* WARNING: Subroutine does not return */
                    gold::do_gold_unreachable
                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));
                  }
                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))
                  goto LAB_0008e248;
                }
                in_stack_fffffda0 = (Symbol *)0x8e698;
                Powerpc_relobj<64,_false>::set_no_toc_opt
                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));
              }
            }
          }
LAB_0008e248:
          puVar21 = (undefined1 *)
                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.
                           _M_header._M_parent + 2);
          if (puVar21 < (undefined1 *)0x4e) {
                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();
            return;
          }
        }
      }
_L18143:
      local_1ec = local_1ec + 1;
      prelocs = prelocs + 0x18;
    } while (reloc_count != local_1ec);
  }
  return;
}



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

{
  code *pcVar1;
  int *piVar2;
  undefined4 *puVar3;
  char cVar4;
  byte bVar5;
  uint uVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  undefined4 extraout_ECX;
  undefined4 *puVar10;
  int iVar11;
  uint extraout_ECX_00;
  uint uVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined1 *puVar15;
  int unaff_EDI;
  int iVar16;
  undefined8 uVar17;
  int aiStackY_280 [5];
  undefined1 auStack_25c [8];
  int local_254;
  int local_250;
  int local_248;
  int local_244;
  undefined4 *local_240;
  undefined4 *local_23c;
  undefined4 *local_238;
  int local_234;
  int local_230;
  int local_22c;
  int local_224;
  int local_220;
  uint local_21c;
  int local_218;
  uint local_214;
  int local_210;
  char local_20c;
  int local_204;
  undefined1 *local_200;
  char local_1f9;
  uint local_1f8;
  uint local_1f4;
  uint local_1f0;
  int local_1ec;
  uint local_1e8;
  int *local_1d8 [2];
  uint local_1d0 [25];
  int local_16c;
  int local_168;
  undefined4 local_164;
  undefined4 local_160;
  undefined4 local_15c;
  undefined1 local_158;
  undefined1 *local_154 [2];
  undefined1 local_14c [268];
  int local_40 [12];
  
  FUN_000b484e();
  iVar16 = unaff_EDI + 0x3863e7;
  local_1f9 = param_10;
  if (*(char *)(param_1 + 0x9e) == '\0') {
    cVar4 = '\0';
    if ((*(byte *)(param_1 + 8) & 2) != 0) {
      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
      if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);
      }
      cVar4 = *(char *)(iVar8 + 0x2b60);
      if (*(char *)(iVar8 + 0x2b60) != '\0') {
        if (*(char *)(iVar8 + 0x2b61) == '\0') {
          cVar4 = '\0';
        }
        else {
          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));
          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);
          cVar4 = (char)local_1e8;
          if (iVar8 == 0) {
            uVar7 = gettext(unaff_EDI + 0x269c6f);
            FUN_000d1360(uVar7);
            cVar4 = (char)local_1e8;
          }
        }
      }
    }
    *(char *)(param_1 + 0x9d) = cVar4;
    *(undefined1 *)(param_1 + 0x9e) = 1;
  }
  puVar15 = auStack_25c;
  if (param_6 == 9) {
    iVar16 = param_4[1];
    uVar7 = gettext(unaff_EDI + 0x269cc7);
    FUN_000d1330(uVar7,iVar16);
    return;
  }
  local_16c = 0;
  local_168 = 0;
  local_164 = 0;
  local_160 = 0;
  local_15c = 0;
  local_158 = 0;
  if (param_8 != 0) {
    local_1ec = 0;
    local_210 = (param_5 >> 5) << 2;
    local_214 = 1 << ((byte)param_5 & 0x1f);
    local_218 = unaff_EDI + 0x3868cf;
    local_204 = local_218;
    do {
      local_1d8[0] = param_7;
      if (local_1f9 != '\0') {
        *(int *)(puVar15 + -0x10) = param_7[1];
        *(int *)(puVar15 + -0x14) = *param_7;
        *(uint *)(puVar15 + -0x18) = param_5;
        *(int **)(puVar15 + -0x1c) = param_4;
        *(undefined4 *)(puVar15 + -0x20) = param_9;
        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;
        cVar4 = FUN_00163e50();
        if (cVar4 != '\0') goto LAB_0008dd2e;
        goto LAB_0008dda8;
      }
LAB_0008dd2e:
      local_1e8 = local_1d8[0][2];
      uVar12 = local_1d8[0][3];
      if (uVar12 < param_11) {
        if (param_12 == 0) {
          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;
          *(undefined4 *)(puVar15 + -0xc) = 0x4d;
          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;
                    /* WARNING: Subroutine does not return */
          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;
          FUN_000da200();
        }
        local_40[0] = param_12 + uVar12 * 0x18;
        uVar6 = (uint)*(ushort *)(local_40[0] + 6);
        if (uVar6 < 0xff00) {
LAB_0008de38:
          if (uVar6 == 0) goto LAB_0008dd74;
          local_1f4 = param_4[0xf];
          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {
            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;
            *(undefined4 *)(puVar15 + -0xc) = 0x50b;
            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;
                    /* WARNING: Subroutine does not return */
            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;
            FUN_000da200();
          }
          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;
          *(uint *)(puVar15 + -8) = uVar6;
          *(int **)(puVar15 + -0xc) = param_4;
          *(undefined4 *)(puVar15 + -0x10) = param_2;
          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;
          uVar12 = FUN_001e6ec0();
          uVar12 = (uVar12 ^ 1) & 0xff;
        }
        else {
          if (uVar6 == 0xffff) {
            iVar8 = param_4[0xc];
            if (iVar8 == 0) {
              iVar8 = *param_4;
              *(int **)(puVar15 + -0x10) = param_4;
              pcVar1 = *(code **)(iVar8 + 0x6c);
              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;
              iVar8 = (*pcVar1)();
              param_4[0xc] = iVar8;
            }
            *(uint *)(puVar15 + -8) = uVar12;
            *(int **)(puVar15 + -0xc) = param_4;
            *(int *)(puVar15 + -0x10) = iVar8;
                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */
            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;
            uVar6 = FUN_00121c60();
            goto LAB_0008de38;
          }
LAB_0008dd74:
          uVar12 = 0;
        }
        *(uint *)(puVar15 + -4) = uVar12;
        *(int **)(puVar15 + -8) = local_40;
        *(uint *)(puVar15 + -0xc) = local_1e8;
        *(int ***)(puVar15 + -0x10) = local_1d8;
        *(undefined4 *)(puVar15 + -0x14) = param_9;
        *(uint *)(puVar15 + -0x18) = param_5;
        *(int **)(puVar15 + -0x1c) = param_4;
        *(int *)(puVar15 + -0x20) = param_1;
                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */
        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;
        FUN_0008c5a0();
      }
      else {
        if (uVar12 < (uint)param_4[0x2c]) {
LAB_00090230:
          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;
          *(undefined4 *)(puVar15 + -0xc) = 0x6a;
          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;
          FUN_000da200();
        }
        uVar12 = uVar12 - param_4[0x2c];
        local_1f4 = param_4[0x30];
        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {
          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;
          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;
          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;
                    /* WARNING: Subroutine does not return */
          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;
          FUN_000da200();
        }
        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);
        if (uVar12 == 0) goto LAB_00090230;
        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {
          iVar8 = local_16c;
          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&
             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;
LAB_0008e048:
          if (*(uint *)(param_1 + 0xb0) != uVar12) {
            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;
            local_16c = 0;
            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;
            goto LAB_0008e080;
          }
          local_16c = 0;
          uVar6 = uVar12;
          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;
        }
        else {
          *(uint *)(puVar15 + -0xc) = uVar12;
          *(undefined4 *)(puVar15 + -0x10) = param_2;
          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;
          uVar12 = FUN_001e6f30();
          iVar8 = local_16c;
          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||
               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;
LAB_0008df60:
          local_16c = 0;
          if ((iVar8 == 0) || (local_168 == 0)) {
            uVar6 = *(uint *)(param_1 + 0xb0);
          }
          else {
            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;
            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;
            uVar7 = gettext();
            *(undefined4 *)(puVar15 + -0x10) = uVar7;
            *(undefined4 *)(puVar15 + -0x14) = local_15c;
            *(undefined4 *)(puVar15 + -0x18) = local_160;
            *(undefined4 *)(puVar15 + -0x1c) = local_164;
            *(int *)(puVar15 + -0x20) = local_168;
            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;
            FUN_000d1a30();
            uVar6 = *(uint *)(param_1 + 0xb0);
          }
LAB_0008dfbd:
          local_1f4 = *(uint *)(param_1 + 0xb4);
          if ((local_1f4 == 0) || (uVar6 != uVar12)) {
LAB_0008e080:
            local_1f4 = uVar12;
            if (local_1e8 != 0x6b) goto LAB_0008dfe9;
LAB_0008e093:
            local_16c = 1;
            *(uint *)(puVar15 + -0x10) = local_1f4;
            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;
            FUN_001e6ba0();
            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
            if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
              *(undefined **)(puVar15 + -4) = &UNK_0009035c;
              FUN_00052750();
            }
LAB_0008e0c3:
            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {
              local_16c = 2;
            }
          }
          else {
            if (local_1e8 == 0x6b) goto LAB_0008e093;
LAB_0008dfe9:
            if (local_1e8 == 0x6c) {
              local_16c = 1;
              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
              if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;
                FUN_00052750();
              }
              goto LAB_0008e0c3;
            }
          }
          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;
          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);
          if (local_1f8 == 10) {
            *(undefined4 *)(puVar15 + -0x10) = 1;
            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;
            local_20c = FUN_0004f6b0();
            if (local_20c == '\0') {
              if (local_1e8 < 0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();
                return;
              }
            }
            else {
              local_22c = local_1d8[0][3];
              local_220 = local_1d8[0][5];
              local_21c = local_1e8 & 0x7fffffff;
              local_230 = local_1d8[0][1];
              local_224 = local_1d8[0][4];
              local_234 = *local_1d8[0];
              puVar3 = *(undefined4 **)(param_1 + 0x78);
              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {
                local_23c = *(undefined4 **)(param_1 + 0x74);
                local_244 = (int)puVar3 - (int)local_23c;
                uVar12 = local_244 >> 5;
                if (uVar12 == 0) {
                  local_240 = (undefined4 *)0x20;
LAB_0008f9a2:
                  *(undefined4 **)(puVar15 + -0x10) = local_240;
                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;
                  local_238 = (undefined4 *)FUN_00246670();
                  local_248 = (int)local_240 + (int)local_238;
                  local_240 = local_238 + 8;
                }
                else {
                  uVar6 = uVar12 * 2;
                  if (uVar6 < uVar12) {
                    local_240 = (undefined4 *)0xffffffe0;
                    goto LAB_0008f9a2;
                  }
                  local_240 = (undefined4 *)0xffffffe0;
                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;
                  if (uVar6 != 0) {
                    local_240 = (undefined4 *)(uVar12 << 6);
                    goto LAB_0008f9a2;
                  }
                  local_240 = (undefined4 *)0x20;
                  local_248 = 0;
                  local_238 = (undefined4 *)0x0;
                }
                puVar10 = (undefined4 *)(local_244 + (int)local_238);
                *puVar10 = param_4;
                puVar10[3] = local_230;
                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;
                puVar10[1] = param_5;
                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;
                puVar10[2] = local_234;
                puVar10[7] = local_220;
                puVar10[5] = local_22c;
                puVar10[6] = local_224;
                puVar10 = local_238;
                puVar13 = local_23c;
                if (puVar3 != local_23c) {
                  do {
                    puVar14 = puVar13 + 8;
                    *puVar10 = *puVar13;
                    puVar10[1] = puVar13[1];
                    puVar10[2] = puVar13[2];
                    puVar10[3] = puVar13[3];
                    puVar10[4] = puVar13[4];
                    puVar10[5] = puVar13[5];
                    puVar10[6] = puVar13[6];
                    puVar10[7] = puVar13[7];
                    puVar10 = puVar10 + 8;
                    puVar13 = puVar14;
                  } while (puVar3 != puVar14);
                  local_240 = (undefined4 *)
                              ((int)local_238 +
                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);
                }
                if (local_23c != (undefined4 *)0x0) {
                  *(undefined4 **)(puVar15 + -0x10) = local_23c;
                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;
                  FUN_00248220();
                }
                *(undefined4 **)(param_1 + 0x74) = local_238;
                *(undefined4 **)(param_1 + 0x78) = local_240;
                *(int *)(param_1 + 0x7c) = local_248;
              }
              else {
                puVar3[2] = local_234;
                puVar3[3] = local_230;
                *puVar3 = param_4;
                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;
                puVar3[1] = param_5;
                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;
                puVar3[5] = local_22c;
                puVar3[6] = local_224;
                puVar3[7] = local_220;
                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;
              }
              if (local_1e8 - 0xb < 3) {
                local_224 = param_4[0x67];
                local_22c = param_4[0x66];
                iVar9 = param_4[100];
                iVar8 = local_224 + (local_22c - iVar9) * 8;
                uVar12 = iVar8 - param_4[0x65];
                if (uVar12 <= param_5) {
                  iVar11 = param_4[0x65] + param_5 + 1;
                  if (param_5 + 1 < uVar12) {
                    iVar8 = iVar11 + 0x1f;
                    if (-1 < iVar11) {
                      iVar8 = iVar11;
                    }
                    iVar8 = iVar9 + (iVar8 >> 5) * 4;
                    iVar11 = iVar11 % 0x20;
                    if (iVar11 < 0) {
                      iVar11 = iVar11 + 0x20;
                      iVar8 = iVar8 + -4;
                    }
                    param_4[0x66] = iVar8;
                    param_4[0x67] = iVar11;
                  }
                  else {
                    *(undefined4 *)(puVar15 + -0x10) = 0;
                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;
                    *(int *)(puVar15 + -0x18) = local_224;
                    *(int *)(puVar15 + -0x1c) = local_22c;
                    *(int **)(puVar15 + -0x20) = param_4 + 100;
                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;
                    local_254 = local_22c;
                    local_250 = local_224;
                    FUN_000ab3a0();
                    iVar9 = param_4[100];
                  }
                }
                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;
              }
              *(uint *)(puVar15 + -0x10) = local_1f4;
              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;
              FUN_0006c210();
              if (local_1e8 < 0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();
                return;
              }
            }
          }
          else if (local_1e8 < 0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();
            return;
          }
          *(uint *)(puVar15 + -0xc) = local_1f4;
          *(undefined1 ***)(puVar15 + -0x10) = local_154;
          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;
          FUN_001e7ee0();
          iVar8 = param_4[1];
          local_200 = local_154[0];
          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;
          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;
          uVar7 = gettext();
          *(undefined1 **)(puVar15 + -8) = local_200;
          *(uint *)(puVar15 + -0xc) = local_1e8;
          *(int *)(puVar15 + -0x10) = iVar8;
          *(undefined4 *)(puVar15 + -0x14) = uVar7;
                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */
          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;
          FUN_000d1330();
          if (local_154[0] != local_14c) {
            *(undefined1 **)(puVar15 + -0x14) = local_154[0];
            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;
            FUN_00248220();
          }
          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
          if (iVar8 == 0) {
            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;
            *(undefined4 *)(puVar15 + -0x10) = 0x5c;
            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar15 + -0x18) = 0x90264;
            FUN_000da200();
          }
          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;
          if (param_5 == param_4[0x52]) {
            if (local_1e8 != 0x26) {
LAB_0008e450:
                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */
              *(undefined4 *)(puVar15 + -8) = 0x8e463;
              FUN_0008c440();
              goto joined_r0x0008e46f;
            }
            if (local_1f8 == 10) {
              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {
                bVar5 = *(byte *)(iVar8 + 0x2931);
joined_r0x0008e445:
                if (bVar5 == 0) goto LAB_0008e248;
              }
              goto LAB_0008e450;
            }
            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {
              bVar5 = *(byte *)(local_1f4 + 0x2a);
              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);
              if ((bVar5 & 7) == 0) {
                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));
                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;
                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;
                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;
              }
              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;
            }
          }
          else {
joined_r0x0008e46f:
            if (local_1e8 - 0xf < 0x50) {
                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();
              return;
            }
            local_1f8 = 0;
            if ((((local_1e8 - 0x2f < 0x12) &&
                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&
                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&
               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&
                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {
              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;
              iVar9 = FUN_00053620();
              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];
              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +
                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);
              pcVar1 = *(code **)(*piVar2 + 0x3c);
              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {
                *(int *)(puVar15 + -0x10) = iVar8;
                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;
                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;
                uVar17 = FUN_000b2960();
              }
              else {
                *(int *)(puVar15 + -0x10) = iVar8;
                *(int **)(puVar15 + -0x14) = piVar2;
                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;
                uVar17 = (*pcVar1)();
              }
              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);
              if ((local_1e8 != 0x32) &&
                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {
                if (local_1e8 == 0x40) {
                  uVar12 = local_1f4;
                  if (local_1f8 == 0) {
                    *(undefined4 *)(puVar15 + -8) = 0;
                    *(uint **)(puVar15 + -0xc) = local_1d0;
                    *(uint *)(puVar15 + -0x10) = param_5;
                    *(int **)(puVar15 + -0x14) = param_4;
                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;
                    local_1f8 = FUN_00121d40();
                    uVar12 = extraout_ECX_00;
                  }
                  if (local_1d8[0][1] != 0) {
                    *(uint *)(puVar15 + -8) = uVar12;
                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;
                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;
                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;
                    /* WARNING: Subroutine does not return */
                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;
                    FUN_000da200();
                  }
                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&
                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;
                }
                *(undefined4 *)(puVar15 + -8) = 0x8e698;
                FUN_0008c440();
              }
            }
          }
LAB_0008e248:
          puVar15 = puVar15 + -4;
          if (local_1e8 - 0xe < 0x4e) {
                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();
            return;
          }
        }
      }
LAB_0008dda8:
      local_1ec = local_1ec + 1;
      param_7 = param_7 + 6;
    } while (param_8 != local_1ec);
    if ((local_16c != 0) && (local_168 != 0)) {
      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;
      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;
      uVar7 = gettext();
      *(undefined4 *)(puVar15 + -0x10) = uVar7;
      *(undefined4 *)(puVar15 + -0x14) = local_15c;
      *(undefined4 *)(puVar15 + -0x18) = local_160;
      *(undefined4 *)(puVar15 + -0x1c) = local_164;
      *(int *)(puVar15 + -0x20) = local_168;
      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;
      FUN_000d1a30();
    }
  }
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
CALL 0x000b484e
ADD EDI,0x3863e7
PUSH ESI
PUSH EBX
SUB ESP,0x24c
MOVZX EAX,byte ptr [EBP + 0x2c]
MOV byte ptr [EBP + 0xfffffe0b],AL
MOV EAX,dword ptr [EBP + 0x8]
MOVZX EDX,byte ptr [EAX + 0x9e]
TEST DL,DL
JNZ 0x0008dc88
TEST byte ptr [EAX + 0x8],0x2
JZ 0x0008dc78
LEA EAX,[EDI + 0x4e8]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000903c4
MOVZX EDX,byte ptr [EAX + 0x2b60]
TEST DL,DL
JZ 0x0008dc78
MOVZX EDX,byte ptr [EAX + 0x2b61]
TEST DL,DL
JNZ 0x0008faf0
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0x8]
MOV byte ptr [EAX + 0x9d],DL
MOV byte ptr [EAX + 0x9e],0x1
CMP dword ptr [EBP + 0x1c],0x9
JZ 0x0008f338
MOV EBX,dword ptr [EBP + 0x24]
MOV dword ptr [EBP + 0xfffffe98],0x0
MOV dword ptr [EBP + 0xfffffe9c],0x0
MOV dword ptr [EBP + 0xfffffea0],0x0
MOV dword ptr [EBP + 0xfffffea4],0x0
MOV dword ptr [EBP + 0xfffffea8],0x0
MOV byte ptr [EBP + 0xfffffeac],0x0
TEST EBX,EBX
JZ 0x0008de0a
MOV EAX,dword ptr [EBP + 0x18]
MOVZX ECX,byte ptr [EBP + 0x18]
MOV dword ptr [EBP + 0xfffffe18],0x0
SHR EAX,0x5
SHL EAX,0x2
MOV dword ptr [EBP + 0xfffffdf4],EAX
MOV EAX,0x1
SHL EAX,CL
MOV dword ptr [EBP + 0xfffffdf0],EAX
LEA EAX,[EDI + 0x4e8]
MOV dword ptr [EBP + 0xfffffe00],EAX
MOV dword ptr [EBP + 0xfffffdec],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0x20]
CMP byte ptr [EBP + 0xfffffe0b],0x0
MOV dword ptr [EBP + 0xfffffe2c],EAX
JNZ 0x0008de90
MOV ESI,dword ptr [EAX + 0x8]
MOV EBX,dword ptr [EAX + 0xc]
MOV dword ptr [EBP + 0xfffffe1c],ESI
CMP dword ptr [EBP + 0x30],EBX
JBE 0x0008dec0
MOV ECX,dword ptr [EBP + 0x34]
TEST ECX,ECX
JZ 0x000901bb
MOV ESI,dword ptr [EBP + 0x34]
LEA EAX,[EBX + EBX*0x2]
LEA EAX,[ESI + EAX*0x8]
MOV dword ptr [EBP + -0x3c],EAX
MOVZX EAX,word ptr [EAX + 0x6]
CMP EAX,0xfeff
JBE 0x0008de38
CMP EAX,0xffff
JZ 0x0008de18
XOR EDX,EDX
PUSH EDX
LEA EDX,[EBP + -0x3c]
MOV ECX,dword ptr [EBP + 0x10]
LEA EAX,[EBP + 0xfffffe98]
PUSH EDX
LEA EDX,[EBP + 0xfffffe2c]
PUSH dword ptr [EBP + 0xfffffe1c]
PUSH EDX
PUSH dword ptr [EBP + 0x28]
MOV EDX,dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0x8]
CALL 0x0008c5a0
ADD ESP,0x20
ADD dword ptr [EBP + 0xfffffe18],0x1
MOV EAX,dword ptr [EBP + 0xfffffe18]
ADD dword ptr [EBP + 0x20],0x18
CMP dword ptr [EBP + 0x24],EAX
JNZ 0x0008dd18
MOV EDX,dword ptr [EBP + 0xfffffe98]
TEST EDX,EDX
JZ 0x0008de0a
MOV EAX,dword ptr [EBP + 0xfffffe9c]
TEST EAX,EAX
JZ 0x0008de0a
SUB ESP,0xc
LEA EAX,[EDI + 0xffee35f4]
MOV EBX,EDI
PUSH EAX
CALL 0x0002c440
MOV dword ptr [ESP],EAX
PUSH dword ptr [EBP + 0xfffffea8]
PUSH dword ptr [EBP + 0xfffffea4]
PUSH dword ptr [EBP + 0xfffffea0]
PUSH dword ptr [EBP + 0xfffffe9c]
CALL 0x000d1a30
ADD ESP,0x20
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0x30]
TEST EAX,EAX
JZ 0x0008e4b8
SUB ESP,0x4
PUSH EBX
MOV EBX,EDI
PUSH dword ptr [EBP + 0x14]
PUSH EAX
CALL 0x00121c60
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0008dd74
MOV ESI,dword ptr [EBP + 0x14]
MOV ECX,dword ptr [ESI + 0x38]
MOV ESI,dword ptr [ESI + 0x3c]
MOV EDX,ESI
MOV dword ptr [EBP + 0xfffffe10],ESI
SUB EDX,ECX
SAR EDX,0x2
CMP EDX,EAX
JBE 0x000902d9
MOV EDX,dword ptr [ECX + EAX*0x4]
TEST EDX,EDX
JNZ 0x0008dd74
SUB ESP,0x4
MOV EBX,EDI
PUSH EAX
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0xc]
CALL 0x001e6ec0
XOR EAX,0x1
ADD ESP,0x10
MOVZX EDX,AL
JMP 0x0008dd76
SUB ESP,0xc
PUSH dword ptr [EAX + 0x4]
MOV EBX,EDI
PUSH dword ptr [EAX]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0x28]
CALL 0x00163e50
ADD ESP,0x20
TEST AL,AL
JZ 0x0008dda8
MOV EAX,dword ptr [EBP + 0xfffffe2c]
JMP 0x0008dd2e
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0xb0]
CMP EBX,EAX
JC 0x00090230
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 + 0xfffffe10],EAX
SUB EAX,EDX
SAR EAX,0x2
CMP EBX,EAX
JNC 0x00090264
MOV ESI,dword ptr [EDX + EBX*0x4]
TEST ESI,ESI
JZ 0x00090230
TEST byte ptr [ESI + 0x2a],0x10
JZ 0x0008e2d0
SUB ESP,0x8
MOV EBX,EDI
PUSH ESI
PUSH dword ptr [EBP + 0xc]
CALL 0x001e6f30
MOV EBX,dword ptr [EBP + 0xfffffe1c]
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [EBP + 0xfffffe98]
LEA EDX,[EBX + -0xa]
AND EDX,0xfffffff7
JZ 0x0008e040
LEA EDX,[EBX + -0x1d]
CMP EDX,0x2
JBE 0x0008e040
CMP EBX,0x3c
JZ 0x0008e040
LEA EDX,[EBX + -0x77]
CMP EDX,0x1
JBE 0x0008e040
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV dword ptr [EBP + 0xfffffe98],0x0
TEST EAX,EAX
JZ 0x0008e2b8
MOV EAX,dword ptr [EBP + 0xfffffe9c]
TEST EAX,EAX
JZ 0x0008e2b8
SUB ESP,0xc
LEA EAX,[EDI + 0xffee35f4]
MOV EBX,EDI
PUSH EAX
CALL 0x0002c440
MOV dword ptr [ESP],EAX
PUSH dword ptr [EBP + 0xfffffea8]
PUSH dword ptr [EBP + 0xfffffea4]
PUSH dword ptr [EBP + 0xfffffea0]
PUSH dword ptr [EBP + 0xfffffe9c]
CALL 0x000d1a30
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x20
MOV EDX,dword ptr [EAX + 0xb0]
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0xb4]
MOV dword ptr [EBP + 0xfffffe10],EAX
TEST EAX,EAX
JZ 0x0008e080
CMP EDX,ESI
JNZ 0x0008e080
CMP dword ptr [EBP + 0xfffffe1c],0x6b
JZ 0x0008e093
CMP dword ptr [EBP + 0xfffffe1c],0x6c
JZ 0x0008e490
MOV EAX,dword ptr [EBP + 0xfffffe10]
MOVZX EAX,byte ptr [EAX + 0x28]
MOV ESI,EAX
AND ESI,0xf
CMP ESI,0xa
MOV dword ptr [EBP + 0xfffffe0c],ESI
SETZ byte ptr [EBP + 0xfffffe04]
JZ 0x0008e320
MOV EAX,dword ptr [EBP + 0xfffffe1c]
CMP EAX,0xfe
JA 0x0008e360
MOV EAX,dword ptr [EDI + EAX*0x4 + 0xffed9158]
ADD EAX,EDI
JMP EAX
TEST ESI,ESI
JZ 0x0008df60
MOV ECX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [ECX + 0xb0]
CMP EDX,ESI
JZ 0x0008e290
CMP dword ptr [ECX + 0xb4],ESI
JNZ 0x0008df60
MOV dword ptr [EBP + 0xfffffe98],0x0
CMP EAX,0x1
JZ 0x0008e080
CMP EAX,0x2
JZ 0x0008dda8
LEA ESI,[ESI]
CMP dword ptr [EBP + 0xfffffe1c],0x6b
MOV dword ptr [EBP + 0xfffffe10],ESI
JNZ 0x0008dfe9
MOV dword ptr [EBP + 0xfffffe98],0x1
SUB ESP,0xc
MOV EBX,EDI
PUSH dword ptr [EBP + 0xfffffe10]
CALL 0x001e6ba0
LEA EAX,[EDI + 0x4e8]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x00090357
CMP byte ptr [EAX + 0x1a25],0x0
JNZ 0x0008dff6
CMP byte ptr [EAX + 0x3ef5],0x0
JZ 0x0008dff6
MOV dword ptr [EBP + 0xfffffe98],0x2
JMP 0x0008dff6
TEST ECX,ECX
JZ 0x0009024a
MOVZX EAX,byte ptr [ECX + 0x3fed]
TEST AL,AL
JZ 0x0008e248
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0x148]
CMP dword ptr [EBP + 0x18],EAX
JZ 0x0008e3e0
MOV EAX,dword ptr [EBP + 0xfffffe1c]
SUB EAX,0xf
CMP EAX,0x4f
JA 0x0008e478
MOV ECX,dword ptr [EDI + EAX*0x4 + 0xffed9554]
ADD ECX,EDI
JMP ECX
MOV EAX,dword ptr [EBP + 0xfffffe1c]
LEA ECX,[EAX + -0x2f]
CMP ECX,0x11
JA 0x0008e248
MOV EAX,0x1
SHL EAX,CL
TEST EAX,0x3000f
JZ 0x0008e248
MOV EAX,dword ptr [EBP + 0xfffffe10]
TEST byte ptr [EAX + 0x2a],0x7
JZ 0x0008e5b0
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0xfffffe1c]
SUB EAX,0xe
CMP EAX,0x4d
JA 0x0008dda8
MOV ECX,dword ptr [EDI + EAX*0x4 + 0xffed9694]
ADD ECX,EDI
JMP ECX
MOV dword ptr [EBP + 0xfffffe98],0x0
CMP EAX,0x1
JZ 0x000903fe
CMP EAX,0x2
JZ 0x0008dda8
JMP 0x0008dfbd
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EAX + 0xb0]
JMP 0x0008dfbd
MOV EBX,dword ptr [EBP + 0xfffffe1c]
MOV EAX,dword ptr [EBP + 0xfffffe98]
LEA EDX,[EBX + -0xa]
AND EDX,0xfffffff7
JZ 0x0008e048
MOV ECX,dword ptr [EBP + 0xfffffe1c]
LEA EDX,[ECX + -0x1d]
CMP EDX,0x2
JBE 0x0008e048
CMP ECX,0x3c
JZ 0x0008e048
MOV EBX,dword ptr [EBP + 0xfffffe1c]
LEA EDX,[EBX + -0x77]
CMP EDX,0x1
JA 0x0008df60
JMP 0x0008e048
SUB ESP,0xc
MOV ECX,dword ptr [EBP + 0xfffffe1c]
MOV EDX,dword ptr [EBP + 0x14]
PUSH 0x1
MOV EAX,dword ptr [EBP + 0x8]
CALL 0x0004f6b0
MOV byte ptr [EBP + 0xfffffdf8],AL
ADD ESP,0x10
TEST AL,AL
JNZ 0x0008f1e0
MOV EAX,dword ptr [EBP + 0xfffffe1c]
CMP EAX,0xfe
JA 0x0008e360
MOV EAX,dword ptr [EDI + EAX*0x4 + 0xffed97cc]
ADD EAX,EDI
JMP EAX
SUB ESP,0x8
LEA EAX,[EBP + 0xfffffeb0]
PUSH dword ptr [EBP + 0xfffffe10]
MOV EBX,EDI
PUSH EAX
CALL 0x001e7ee0
MOV EAX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EBP + 0xfffffeb0]
MOV ESI,dword ptr [EAX + 0x4]
LEA EAX,[EDI + 0xffee3904]
MOV dword ptr [EBP + 0xfffffe04],EDX
PUSH EAX
CALL 0x0002c440
MOV EDX,dword ptr [EBP + 0xfffffe04]
ADD ESP,0x10
PUSH EDX
PUSH dword ptr [EBP + 0xfffffe1c]
PUSH ESI
PUSH EAX
CALL 0x000d1330
MOV EAX,dword ptr [EBP + 0xfffffeb0]
LEA EDX,[EBP + 0xfffffeb8]
ADD ESP,0x10
CMP EAX,EDX
JZ 0x0008e3d0
SUB ESP,0xc
PUSH EAX
CALL 0x00248220
ADD ESP,0x10
LEA ESI,[ESI]
NOP
LEA EAX,[EDI + 0x4e8]
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EAX + 0x8]
JMP 0x0008e158
CMP dword ptr [EBP + 0xfffffe1c],0x26
JNZ 0x0008e450
CMP dword ptr [EBP + 0xfffffe0c],0xa
JZ 0x0008f880
CMP byte ptr [ECX + 0x1a25],0x0
JZ 0x0008f5d0
MOV ECX,dword ptr [EBP + 0xfffffe10]
MOVZX EAX,byte ptr [ECX + 0x2a]
MOV byte ptr [EBP + 0xfffffe0c],AL
AND EAX,0x7
JNZ 0x0008f948
MOVZX EAX,byte ptr [ECX + 0x2b]
MOV EDX,dword ptr [ECX + 0xc]
MOV byte ptr [EBP + 0xfffffe0c],AL
SHR AL,0x5
AND EAX,0x1
CMP EDX,0xfff1
JNZ 0x0008e43b
TEST AL,AL
JZ 0x0008e450
TEST EDX,EDX
JNZ 0x0008e248
TEST AL,AL
JZ 0x0008e248
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBP + 0xfffffe2c]
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EBP + 0x14]
CALL 0x0008c440
MOV EAX,dword ptr [EBP + 0xfffffe1c]
SUB EAX,0xf
CMP EAX,0x4f
JBE 0x0008e193
LEA ESI,[ESI]
MOV dword ptr [EBP + 0xfffffe0c],0x0
JMP 0x0008e218
MOV dword ptr [EBP + 0xfffffe98],0x1
LEA EAX,[EDI + 0x4e8]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JNZ 0x0008e0c3
CALL 0x00052750
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 ECX,dword ptr [EBP + 0x14]
ADD ESP,0x10
MOV dword ptr [ECX + 0x30],EAX
JMP 0x0008de26
MOV ESI,dword ptr [EAX + 0x8]
TEST byte ptr [ESI + 0x2c],0x1
JNZ 0x0008e248
MOV EBX,dword ptr [EAX + 0xc]
CMP EBX,dword ptr [ESI + 0x148]
JNZ 0x0008e248
CALL 0x00053620
MOV ECX,dword ptr [EBP + 0xfffffe2c]
MOV EDX,dword ptr [EAX + 0x34]
MOV EAX,dword ptr [EAX + 0x30]
ADD EAX,dword ptr [ECX + 0x10]
ADC EDX,dword ptr [ECX + 0x14]
MOV dword ptr [EBP + 0xfffffe10],EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [EBP + 0xfffffe14],EDX
LEA EDX,[EDI + 0xffc9ea10]
MOV EAX,dword ptr [EAX + 0x3c]
CMP EAX,EDX
JNZ 0x00090184
SUB ESP,0x8
LEA EAX,[ESI + 0x90]
PUSH EBX
PUSH EAX
CALL 0x000b2960
ADD ESP,0x10
CMP dword ptr [EBP + 0xfffffe1c],0x32
JZ 0x0008e248
MOV ECX,dword ptr [EBP + 0xfffffe10]
MOV EBX,dword ptr [EBP + 0xfffffe14]
CMP ECX,EAX
MOV EAX,EBX
SBB EAX,EDX
JNC 0x0008e248
CMP dword ptr [EBP + 0xfffffe1c],0x40
JNZ 0x0008e685
MOV EAX,dword ptr [EBP + 0xfffffe0c]
TEST EAX,EAX
JZ 0x0009031a
MOV EAX,dword ptr [EBP + 0xfffffe2c]
MOV EBX,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EAX]
TEST EBX,EBX
JNZ 0x000904ca
LEA EAX,[EDX + 0x3]
CMP EAX,dword ptr [EBP + 0xfffffe34]
JNC 0x0008e685
MOV EAX,dword ptr [EBP + 0xfffffe0c]
MOVZX EAX,byte ptr [EAX + EDX*0x1 + 0x3]
AND EAX,0xfffffffc
CMP AL,0xe8
JZ 0x0008e248
MOV EDX,dword ptr [EBP + 0xfffffe10]
MOV ECX,dword ptr [EBP + 0xfffffe14]
MOV EAX,ESI
CALL 0x0008c440
JMP 0x0008e248
MOV EAX,dword ptr [EBP + 0xfffffe2c]
MOV ESI,dword ptr [EBP + 0xfffffe1c]
MOV ECX,dword ptr [EAX + 0xc]
MOV EBX,dword ptr [EAX + 0x14]
AND ESI,0x7fffffff
MOV EDX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + 0xfffffde8],ESI
MOV dword ptr [EBP + 0xfffffdd8],ECX
MOV ECX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + 0xfffffde4],EBX
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + 0xfffffde0],ECX
MOV EBX,dword ptr [EBP + 0x8]
MOV ECX,ESI
MOV ESI,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + 0xfffffdd0],EAX
MOV dword ptr [EBP + 0xfffffdd4],EDX
MOV ESI,dword ptr [ESI + 0x78]
CMP ESI,dword ptr [EBX + 0x7c]
JZ 0x0008f960
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ESI + 0x10]
ADD ESI,0x20
MOV EBX,dword ptr [EBP + 0x14]
MOV dword ptr [ESI + -0x14],EDX
AND EAX,0x80000000
OR EAX,ECX
MOV dword ptr [ESI + -0x20],EBX
MOV EBX,dword ptr [EBP + 0x18]
MOV dword ptr [ESI + -0x10],EAX
SHR EAX,0x18
AND EAX,0x7f
MOV dword ptr [ESI + -0x1c],EBX
MOV byte ptr [ESI + -0xd],AL
MOV EAX,dword ptr [EBP + 0xfffffdd8]
MOV ECX,dword ptr [EBP + 0xfffffde0]
MOV EBX,dword ptr [EBP + 0xfffffde4]
MOV dword ptr [ESI + -0xc],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [ESI + -0x8],ECX
MOV dword ptr [ESI + -0x4],EBX
MOV dword ptr [EAX + 0x78],ESI
MOV EAX,dword ptr [EBP + 0xfffffe1c]
SUB EAX,0xb
CMP EAX,0x2
JBE 0x0008f8f0
SUB ESP,0xc
MOV ECX,dword ptr [EBP + 0x10]
MOV EDX,dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0xfffffe10]
MOV EAX,dword ptr [EBP + 0x8]
CALL 0x0006c210
MOV EAX,dword ptr [EBP + 0xfffffe1c]
ADD ESP,0x10
CMP EAX,0xfe
JA 0x0008e360
MOV EAX,dword ptr [EDI + EAX*0x4 + 0xffed9bc8]
ADD EAX,EDI
JMP EAX
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0xc
MOV EBX,EDI
MOV ESI,dword ptr [EAX + 0x4]
LEA EAX,[EDI + 0xffee38e0]
PUSH EAX
CALL 0x0002c440
POP EDI
POP EDX
PUSH ESI
PUSH EAX
CALL 0x000d1330
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP byte ptr [ECX + 0x2931],0x0
JZ 0x0008e248
JMP 0x0008e403
MOV EAX,dword ptr [EBP + 0x8]
TEST byte ptr [EAX + 0x8],0x2
JZ 0x0008e450
CMP byte ptr [ECX + 0x1a25],0x0
JNZ 0x0008e450
CMP byte ptr [ECX + 0x2931],0x0
JNZ 0x0008e450
JMP 0x0008e248
MOV ESI,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EBP + 0x14]
MOV EBX,dword ptr [ESI + 0x19c]
MOV ESI,dword ptr [ESI + 0x198]
MOV ECX,dword ptr [EAX + 0x194]
MOV EAX,dword ptr [EAX + 0x190]
MOV EDX,ESI
MOV dword ptr [EBP + 0xfffffdd8],ESI
SUB EDX,EAX
MOV dword ptr [EBP + 0xfffffde0],EBX
LEA ESI,[EBX + EDX*0x8]
MOV EDX,ESI
SUB EDX,ECX
CMP dword ptr [EBP + 0x18],EDX
JNC 0x0008fd70
MOV ESI,dword ptr [EBP + 0xfffffdf4]
MOV ECX,dword ptr [EBP + 0xfffffdf0]
OR dword ptr [EAX + ESI*0x1],ECX
JMP 0x0008f296
SUB EAX,0x3
CMP AL,0x1
JBE 0x0008e450
JMP 0x0008e248
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x74]
MOV ECX,EAX
MOV dword ptr [EBP + 0xfffffdc8],EAX
MOV EAX,ESI
SUB EAX,ECX
MOV dword ptr [EBP + 0xfffffdc0],EAX
SAR EAX,0x5
JZ 0x0008fbc8
LEA EDX,[EAX + EAX*0x1]
CMP EAX,EDX
JA 0x0008ffd0
MOV dword ptr [EBP + 0xfffffdc4],0xffffffe0
CMP EDX,0x7ffffff
JBE 0x00090159
SUB ESP,0xc
PUSH dword ptr [EBP + 0xfffffdc4]
MOV EBX,EDI
CALL 0x00246670
MOV ECX,EAX
MOV dword ptr [EBP + 0xfffffdcc],EAX
MOV EAX,dword ptr [EBP + 0xfffffdc4]
ADD ESP,0x10
ADD EAX,ECX
MOV dword ptr [EBP + 0xfffffdbc],EAX
LEA EAX,[ECX + 0x20]
MOV dword ptr [EBP + 0xfffffdc4],EAX
MOV EAX,dword ptr [EBP + 0x14]
MOV ECX,dword ptr [EBP + 0xfffffdc0]
ADD ECX,dword ptr [EBP + 0xfffffdcc]
MOV EDX,dword ptr [EBP + 0xfffffdd4]
MOV EBX,dword ptr [ECX + 0x10]
MOV dword ptr [ECX],EAX
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [ECX + 0xc],EDX
AND EBX,0x80000000
OR EBX,dword ptr [EBP + 0xfffffde8]
MOV dword ptr [ECX + 0x10],EBX
SHR EBX,0x18
MOV dword ptr [ECX + 0x4],EAX
MOV EAX,dword ptr [EBP + 0xfffffdd0]
AND EBX,0x7f
MOV byte ptr [ECX + 0x13],BL
MOV EDX,dword ptr [EBP + 0xfffffde4]
MOV dword ptr [ECX + 0x8],EAX
MOV EAX,dword ptr [EBP + 0xfffffdd8]
MOV dword ptr [ECX + 0x1c],EDX
MOV dword ptr [ECX + 0x14],EAX
MOV EAX,dword ptr [EBP + 0xfffffde0]
MOV dword ptr [ECX + 0x18],EAX
MOV EAX,dword ptr [EBP + 0xfffffdc8]
CMP ESI,EAX
JZ 0x0008faa5
MOV EDX,EAX
MOV EAX,dword ptr [EBP + 0xfffffdcc]
MOV ECX,EAX
LEA ESI,[ESI]
NOP
MOV EBX,dword ptr [EDX]
ADD EDX,0x20
ADD ECX,0x20
MOV dword ptr [ECX + -0x20],EBX
MOV EBX,dword ptr [EDX + -0x1c]
MOV dword ptr [ECX + -0x1c],EBX
MOV EBX,dword ptr [EDX + -0x18]
MOV dword ptr [ECX + -0x18],EBX
MOV EBX,dword ptr [EDX + -0x14]
MOV dword ptr [ECX + -0x14],EBX
MOV EBX,dword ptr [EDX + -0x10]
MOV dword ptr [ECX + -0x10],EBX
MOV EBX,dword ptr [EDX + -0xc]
MOV dword ptr [ECX + -0xc],EBX
MOV EBX,dword ptr [EDX + -0x8]
MOV dword ptr [ECX + -0x8],EBX
MOV EBX,dword ptr [EDX + -0x4]
MOV dword ptr [ECX + -0x4],EBX
CMP ESI,EDX
JNZ 0x0008fa50
SUB ESI,0x20
SUB ESI,dword ptr [EBP + 0xfffffdc8]
MOV dword ptr [EBP + 0xfffffdcc],EAX
AND ESI,0xffffffe0
LEA EAX,[EAX + ESI*0x1 + 0x40]
MOV dword ptr [EBP + 0xfffffdc4],EAX
MOV EAX,dword ptr [EBP + 0xfffffdc8]
TEST EAX,EAX
JZ 0x0008fabd
SUB ESP,0xc
MOV EBX,EDI
PUSH EAX
CALL 0x00248220
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBP + 0xfffffdcc]
MOV dword ptr [EAX + 0x74],ESI
MOV ESI,dword ptr [EBP + 0xfffffdc4]
MOV dword ptr [EAX + 0x78],ESI
MOV ESI,dword ptr [EBP + 0xfffffdbc]
MOV dword ptr [EAX + 0x7c],ESI
JMP 0x0008f284
SUB ESP,0x4
LEA EAX,[EDI + 0xffee30ef]
MOV EBX,EDI
MOV byte ptr [EBP + 0xfffffe1c],DL
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + 0xc]
CALL 0x001e9100
ADD ESP,0x10
MOVZX EDX,byte ptr [EBP + 0xfffffe1c]
TEST EAX,EAX
JNZ 0x0008dc78
SUB ESP,0xc
LEA EAX,[EDI + 0xffee3888]
PUSH EAX
CALL 0x0002c440
MOV dword ptr [ESP],EAX
CALL 0x000d1360
ADD ESP,0x10
MOVZX EDX,byte ptr [EBP + 0xfffffe1c]
JMP 0x0008dc78
MOV dword ptr [EBP + 0xfffffdc4],0x20
JMP 0x0008f9a2
MOV EBX,dword ptr [EBP + 0x18]
ADD EBX,0x1
ADD ECX,EBX
CMP EDX,EBX
JBE 0x00090070
TEST ECX,ECX
LEA EDX,[ECX + 0x1f]
CMOVNS EDX,ECX
SAR EDX,0x5
LEA EBX,[EAX + EDX*0x4]
MOV EDX,ECX
SAR EDX,0x1f
SHR EDX,0x1b
ADD ECX,EDX
AND ECX,0x1f
SUB ECX,EDX
JNS 0x0008fda5
ADD ECX,0x20
SUB EBX,0x4
MOV ESI,dword ptr [EBP + 0x14]
MOV dword ptr [ESI + 0x198],EBX
MOV dword ptr [ESI + 0x19c],ECX
JMP 0x0008f92e
MOV dword ptr [EBP + 0xfffffdc4],0xffffffe0
JMP 0x0008f9a2
MOV EAX,dword ptr [EBP + 0xfffffdd8]
SUB ESP,0xc
SUB ECX,ESI
PUSH 0x0
MOV dword ptr [EBP + 0xfffffdb0],EAX
MOV EAX,dword ptr [EBP + 0xfffffde0]
PUSH ECX
MOV dword ptr [EBP + 0xfffffdb4],EAX
MOV EAX,dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0xfffffdb4]
ADD EAX,0x190
PUSH dword ptr [EBP + 0xfffffdb0]
PUSH EAX
CALL 0x000ab3a0
MOV EAX,dword ptr [EBP + 0x14]
ADD ESP,0x20
MOV EAX,dword ptr [EAX + 0x190]
JMP 0x0008f92e
TEST EDX,EDX
JNZ 0x00090500
MOV dword ptr [EBP + 0xfffffdc4],0x20
MOV dword ptr [EBP + 0xfffffdbc],0x0
MOV dword ptr [EBP + 0xfffffdcc],0x0
JMP 0x0008f9d4
SUB ESP,0x8
PUSH EBX
PUSH ESI
CALL EAX
JMP 0x0008e612
SUB ESP,0x4
LEA EAX,[EDI + 0xffee1f90]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffee3015]
PUSH 0x4d
PUSH EAX
CALL 0x000da200
SUB ESP,0x4
LEA EAX,[EDI + 0xffee1f90]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffee3015]
PUSH 0x6a
PUSH EAX
CALL 0x000da200
SUB ESP,0x4
LEA EAX,[EDI + 0xffee23a8]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
SUB ESP,0x4
LEA EAX,[EDI + 0xffee2324]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffee2e48]
PUSH 0x8ad
PUSH EAX
CALL 0x000da200
SUB ESP,0x4
LEA EAX,[EDI + 0xffee22a4]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffee2e48]
PUSH 0x50b
PUSH EAX
CALL 0x000da200
LEA EAX,[EBP + 0xfffffe34]
PUSH 0x0
MOV EBX,EDI
PUSH EAX
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
CALL 0x00121d40
MOV dword ptr [EBP + 0xfffffe0c],EAX
ADD ESP,0x10
JMP 0x0008e651
CALL 0x00052750
LEA EAX,[EDI + 0xffee23a8]
PUSH ECX
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
MOV EDX,ESI
JMP 0x0008dfbd
LEA EAX,[EDI + 0xffee21c4]
PUSH ECX
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffee33bc]
PUSH 0xc0
PUSH EAX
CALL 0x000da200
SHL EAX,0x6
MOV dword ptr [EBP + 0xfffffdc4],EAX
JMP 0x0008f9a2
(translation_unit "void FUN_0008dc10(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 extraout_ECX;\n  undefined4 *puVar10;\n  int iVar11;\n  uint extraout_ECX_00;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  int unaff_EDI;\n  int iVar16;\n  undefined8 uVar17;\n  int aiStackY_280 [5];\n  undefined1 auStack_25c [8];\n  int local_254;\n  int local_250;\n  int local_248;\n  int local_244;\n  undefined4 *local_240;\n  undefined4 *local_23c;\n  undefined4 *local_238;\n  int local_234;\n  int local_230;\n  int local_22c;\n  int local_224;\n  int local_220;\n  uint local_21c;\n  int local_218;\n  uint local_214;\n  int local_210;\n  char local_20c;\n  int local_204;\n  undefined1 *local_200;\n  char local_1f9;\n  uint local_1f8;\n  uint local_1f4;\n  uint local_1f0;\n  int local_1ec;\n  uint local_1e8;\n  int *local_1d8 [2];\n  uint local_1d0 [25];\n  int local_16c;\n  int local_168;\n  undefined4 local_164;\n  undefined4 local_160;\n  undefined4 local_15c;\n  undefined1 local_158;\n  undefined1 *local_154 [2];\n  undefined1 local_14c [268];\n  int local_40 [12];\n  \n  FUN_000b484e();\n  iVar16 = unaff_EDI + 0x3863e7;\n  local_1f9 = param_10;\n  if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }\n  puVar15 = auStack_25c;\n  if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }\n  local_16c = 0;\n  local_168 = 0;\n  local_164 = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_158 = 0;\n  if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0008dc10(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 extraout_ECX;\n  undefined4 *puVar10;\n  int iVar11;\n  uint extraout_ECX_00;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  int unaff_EDI;\n  int iVar16;\n  undefined8 uVar17;\n  int aiStackY_280 [5];\n  undefined1 auStack_25c [8];\n  int local_254;\n  int local_250;\n  int local_248;\n  int local_244;\n  undefined4 *local_240;\n  undefined4 *local_23c;\n  undefined4 *local_238;\n  int local_234;\n  int local_230;\n  int local_22c;\n  int local_224;\n  int local_220;\n  uint local_21c;\n  int local_218;\n  uint local_214;\n  int local_210;\n  char local_20c;\n  int local_204;\n  undefined1 *local_200;\n  char local_1f9;\n  uint local_1f8;\n  uint local_1f4;\n  uint local_1f0;\n  int local_1ec;\n  uint local_1e8;\n  int *local_1d8 [2];\n  uint local_1d0 [25];\n  int local_16c;\n  int local_168;\n  undefined4 local_164;\n  undefined4 local_160;\n  undefined4 local_15c;\n  undefined1 local_158;\n  undefined1 *local_154 [2];\n  undefined1 local_14c [268];\n  int local_40 [12];\n  \n  FUN_000b484e();\n  iVar16 = unaff_EDI + 0x3863e7;\n  local_1f9 = param_10;\n  if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }\n  puVar15 = auStack_25c;\n  if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }\n  local_16c = 0;\n  local_168 = 0;\n  local_164 = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_158 = 0;\n  if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0008dc10(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "char param_10" primitive_type identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "int param_12" primitive_type identifier) ))) (compound_statement "{\n  code *pcVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 extraout_ECX;\n  undefined4 *puVar10;\n  int iVar11;\n  uint extraout_ECX_00;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  int unaff_EDI;\n  int iVar16;\n  undefined8 uVar17;\n  int aiStackY_280 [5];\n  undefined1 auStack_25c [8];\n  int local_254;\n  int local_250;\n  int local_248;\n  int local_244;\n  undefined4 *local_240;\n  undefined4 *local_23c;\n  undefined4 *local_238;\n  int local_234;\n  int local_230;\n  int local_22c;\n  int local_224;\n  int local_220;\n  uint local_21c;\n  int local_218;\n  uint local_214;\n  int local_210;\n  char local_20c;\n  int local_204;\n  undefined1 *local_200;\n  char local_1f9;\n  uint local_1f8;\n  uint local_1f4;\n  uint local_1f0;\n  int local_1ec;\n  uint local_1e8;\n  int *local_1d8 [2];\n  uint local_1d0 [25];\n  int local_16c;\n  int local_168;\n  undefined4 local_164;\n  undefined4 local_160;\n  undefined4 local_15c;\n  undefined1 local_158;\n  undefined1 *local_154 [2];\n  undefined1 local_14c [268];\n  int local_40 [12];\n  \n  FUN_000b484e();\n  iVar16 = unaff_EDI + 0x3863e7;\n  local_1f9 = param_10;\n  if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }\n  puVar15 = auStack_25c;\n  if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }\n  local_16c = 0;\n  local_168 = 0;\n  local_164 = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_158 = 0;\n  if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }\n  return;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint extraout_ECX_00;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined8 uVar17;" type_identifier identifier ;) (declaration "int aiStackY_280 [5];" primitive_type (array_declarator "aiStackY_280 [5]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_25c [8];" type_identifier (array_declarator "auStack_25c [8]" identifier [ number_literal ]) ;) (declaration "int local_254;" primitive_type identifier ;) (declaration "int local_250;" primitive_type identifier ;) (declaration "int local_248;" primitive_type identifier ;) (declaration "int local_244;" primitive_type identifier ;) (declaration "undefined4 *local_240;" type_identifier (pointer_declarator "*local_240" * identifier) ;) (declaration "undefined4 *local_23c;" type_identifier (pointer_declarator "*local_23c" * identifier) ;) (declaration "undefined4 *local_238;" type_identifier (pointer_declarator "*local_238" * identifier) ;) (declaration "int local_234;" primitive_type identifier ;) (declaration "int local_230;" primitive_type identifier ;) (declaration "int local_22c;" primitive_type identifier ;) (declaration "int local_224;" primitive_type identifier ;) (declaration "int local_220;" primitive_type identifier ;) (declaration "uint local_21c;" type_identifier identifier ;) (declaration "int local_218;" primitive_type identifier ;) (declaration "uint local_214;" type_identifier identifier ;) (declaration "int local_210;" primitive_type identifier ;) (declaration "char local_20c;" primitive_type identifier ;) (declaration "int local_204;" primitive_type identifier ;) (declaration "undefined1 *local_200;" type_identifier (pointer_declarator "*local_200" * identifier) ;) (declaration "char local_1f9;" primitive_type identifier ;) (declaration "uint local_1f8;" type_identifier identifier ;) (declaration "uint local_1f4;" type_identifier identifier ;) (declaration "uint local_1f0;" type_identifier identifier ;) (declaration "int local_1ec;" primitive_type identifier ;) (declaration "uint local_1e8;" type_identifier identifier ;) (declaration "int *local_1d8 [2];" primitive_type (pointer_declarator "*local_1d8 [2]" * (array_declarator "local_1d8 [2]" identifier [ number_literal ])) ;) (declaration "uint local_1d0 [25];" type_identifier (array_declarator "local_1d0 [25]" identifier [ number_literal ]) ;) (declaration "int local_16c;" primitive_type identifier ;) (declaration "int local_168;" primitive_type identifier ;) (declaration "undefined4 local_164;" type_identifier identifier ;) (declaration "undefined4 local_160;" type_identifier identifier ;) (declaration "undefined4 local_15c;" type_identifier identifier ;) (declaration "undefined1 local_158;" type_identifier identifier ;) (declaration "undefined1 *local_154 [2];" type_identifier (pointer_declarator "*local_154 [2]" * (array_declarator "local_154 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_14c [268];" type_identifier (array_declarator "local_14c [268]" identifier [ number_literal ]) ;) (declaration "int local_40 [12];" primitive_type (array_declarator "local_40 [12]" identifier [ number_literal ]) ;) (expression_statement "FUN_000b484e();" (call_expression "FUN_000b484e()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = unaff_EDI + 0x3863e7;" (assignment_expression "iVar16 = unaff_EDI + 0x3863e7" identifier = (binary_expression "unaff_EDI + 0x3863e7" identifier + number_literal)) ;) (expression_statement "local_1f9 = param_10;" (assignment_expression "local_1f9 = param_10" identifier = identifier) ;) (if_statement "if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x9e) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x9e) == '\0'" (pointer_expression "*(char *)(param_1 + 0x9e)" * (cast_expression "(char *)(param_1 + 0x9e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9e)" ( (binary_expression "param_1 + 0x9e" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 8) & 2) != 0)" ( (binary_expression "(*(byte *)(param_1 + 8) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 8) & 2)" ( (binary_expression "*(byte *)(param_1 + 8) & 2" (pointer_expression "*(byte *)(param_1 + 8)" * (cast_expression "(byte *)(param_1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }" { (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }" { comment (expression_statement "FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);" (call_expression "FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX)" identifier (argument_list "(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX)" ( (binary_expression "unaff_EDI + 0x254654" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x26878f" identifier + number_literal) , identifier ))) ;) })) (expression_statement "cVar4 = *(char *)(iVar8 + 0x2b60);" (assignment_expression "cVar4 = *(char *)(iVar8 + 0x2b60)" identifier = (pointer_expression "*(char *)(iVar8 + 0x2b60)" * (cast_expression "(char *)(iVar8 + 0x2b60)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2b60)" ( (binary_expression "iVar8 + 0x2b60" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar8 + 0x2b60) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x2b60) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x2b60)" * (cast_expression "(char *)(iVar8 + 0x2b60)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2b60)" ( (binary_expression "iVar8 + 0x2b60" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }" { (if_statement "if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }" if (parenthesized_expression "(*(char *)(iVar8 + 0x2b61) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x2b61) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x2b61)" * (cast_expression "(char *)(iVar8 + 0x2b61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2b61)" ( (binary_expression "iVar8 + 0x2b61" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          cVar4 = '\0';\n        }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }" else (compound_statement "{\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }" { (expression_statement "local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));" (assignment_expression "local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61))" identifier = (call_expression "CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61))" identifier (argument_list "(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61))" ( (field_expression "local_1e8._1_3_" identifier . field_identifier) , (pointer_expression "*(char *)(iVar8 + 0x2b61)" * (cast_expression "(char *)(iVar8 + 0x2b61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2b61)" ( (binary_expression "iVar8 + 0x2b61" identifier + number_literal) )))) )))) ;) (expression_statement "iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);" (assignment_expression "iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0)" identifier = (call_expression "FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0)" identifier (argument_list "(param_2,&UNK_002694d6 + unaff_EDI,0)" ( identifier , (binary_expression "&UNK_002694d6 + unaff_EDI" (pointer_expression "&UNK_002694d6" & identifier) + identifier) , number_literal )))) ;) (expression_statement "cVar4 = (char)local_1e8;" (assignment_expression "cVar4 = (char)local_1e8" identifier = (cast_expression "(char)local_1e8" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }" { (expression_statement "uVar7 = gettext(unaff_EDI + 0x269c6f);" (assignment_expression "uVar7 = gettext(unaff_EDI + 0x269c6f)" identifier = (call_expression "gettext(unaff_EDI + 0x269c6f)" identifier (argument_list "(unaff_EDI + 0x269c6f)" ( (binary_expression "unaff_EDI + 0x269c6f" identifier + number_literal) )))) ;) (expression_statement "FUN_000d1360(uVar7);" (call_expression "FUN_000d1360(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "cVar4 = (char)local_1e8;" (assignment_expression "cVar4 = (char)local_1e8" identifier = (cast_expression "(char)local_1e8" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) }))) })) })) (expression_statement "*(char *)(param_1 + 0x9d) = cVar4;" (assignment_expression "*(char *)(param_1 + 0x9d) = cVar4" (pointer_expression "*(char *)(param_1 + 0x9d)" * (cast_expression "(char *)(param_1 + 0x9d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9d)" ( (binary_expression "param_1 + 0x9d" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x9e) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x9e) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x9e)" * (cast_expression "(undefined1 *)(param_1 + 0x9e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9e)" ( (binary_expression "param_1 + 0x9e" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "puVar15 = auStack_25c;" (assignment_expression "puVar15 = auStack_25c" identifier = identifier) ;) (if_statement "if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }" if (parenthesized_expression "(param_6 == 9)" ( (binary_expression "param_6 == 9" identifier == number_literal) )) (compound_statement "{\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }" { (expression_statement "iVar16 = param_4[1];" (assignment_expression "iVar16 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = gettext(unaff_EDI + 0x269cc7);" (assignment_expression "uVar7 = gettext(unaff_EDI + 0x269cc7)" identifier = (call_expression "gettext(unaff_EDI + 0x269cc7)" identifier (argument_list "(unaff_EDI + 0x269cc7)" ( (binary_expression "unaff_EDI + 0x269cc7" identifier + number_literal) )))) ;) (expression_statement "FUN_000d1330(uVar7,iVar16);" (call_expression "FUN_000d1330(uVar7,iVar16)" identifier (argument_list "(uVar7,iVar16)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;) (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" identifier = number_literal) ;) (expression_statement "local_164 = 0;" (assignment_expression "local_164 = 0" identifier = number_literal) ;) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (expression_statement "local_15c = 0;" (assignment_expression "local_15c = 0" identifier = number_literal) ;) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" identifier = number_literal) ;) (if_statement "if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }" { (expression_statement "local_1ec = 0;" (assignment_expression "local_1ec = 0" identifier = number_literal) ;) (expression_statement "local_210 = (param_5 >> 5) << 2;" (assignment_expression "local_210 = (param_5 >> 5) << 2" identifier = (binary_expression "(param_5 >> 5) << 2" (parenthesized_expression "(param_5 >> 5)" ( (binary_expression "param_5 >> 5" identifier >> number_literal) )) << number_literal)) ;) (expression_statement "local_214 = 1 << ((byte)param_5 & 0x1f);" (assignment_expression "local_214 = 1 << ((byte)param_5 & 0x1f)" identifier = (binary_expression "1 << ((byte)param_5 & 0x1f)" number_literal << (parenthesized_expression "((byte)param_5 & 0x1f)" ( (binary_expression "(byte)param_5 & 0x1f" (cast_expression "(byte)param_5" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_218 = unaff_EDI + 0x3868cf;" (assignment_expression "local_218 = unaff_EDI + 0x3868cf" identifier = (binary_expression "unaff_EDI + 0x3868cf" identifier + number_literal)) ;) (expression_statement "local_204 = local_218;" (assignment_expression "local_204 = local_218" identifier = identifier) ;) (do_statement "do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);" do (compound_statement "{\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    }" { (expression_statement "local_1d8[0] = param_7;" (assignment_expression "local_1d8[0] = param_7" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }" if (parenthesized_expression "(local_1f9 != '\0')" ( (binary_expression "local_1f9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }" { (expression_statement "*(int *)(puVar15 + -0x10) = param_7[1];" (assignment_expression "*(int *)(puVar15 + -0x10) = param_7[1]" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (subscript_expression "param_7[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(puVar15 + -0x14) = *param_7;" (assignment_expression "*(int *)(puVar15 + -0x14) = *param_7" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "*(uint *)(puVar15 + -0x18) = param_5;" (assignment_expression "*(uint *)(puVar15 + -0x18) = param_5" (pointer_expression "*(uint *)(puVar15 + -0x18)" * (cast_expression "(uint *)(puVar15 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(int **)(puVar15 + -0x1c)" * (cast_expression "(int **)(puVar15 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = param_9;" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = param_9" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8dea8;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8dea8" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar4 = FUN_00163e50();" (assignment_expression "cVar4 = FUN_00163e50()" identifier = (call_expression "FUN_00163e50()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar4 != '\0') goto LAB_0008dd2e;" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008dd2e;" goto statement_identifier ;)) (goto_statement "goto LAB_0008dda8;" goto statement_identifier ;) })) (labeled_statement "LAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];" statement_identifier : (expression_statement "local_1e8 = local_1d8[0][2];" (assignment_expression "local_1e8 = local_1d8[0][2]" identifier = (subscript_expression "local_1d8[0][2]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;)) (expression_statement "uVar12 = local_1d8[0][3];" (assignment_expression "uVar12 = local_1d8[0][3]" identifier = (subscript_expression "local_1d8[0][3]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;) (if_statement "if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }" if (parenthesized_expression "(uVar12 < param_11)" ( (binary_expression "uVar12 < param_11" identifier < identifier) )) (compound_statement "{\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }" { (if_statement "if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }" if (parenthesized_expression "(param_12 == 0)" ( (binary_expression "param_12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }" { (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377" (pointer_expression "*(int *)(puVar15 + -8)" * (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x268377" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x4d;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x4d" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;" (assignment_expression "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI" (pointer_expression "*(undefined **)(puVar15 + -0x10)" * (cast_expression "(undefined **)(puVar15 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "&UNK_002693fc + unaff_EDI" (pointer_expression "&UNK_002693fc" & identifier) + identifier)) ;) comment (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_000901d5;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_000901d5" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_000901d5" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_40[0] = param_12 + uVar12 * 0x18;" (assignment_expression "local_40[0] = param_12 + uVar12 * 0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (binary_expression "param_12 + uVar12 * 0x18" identifier + (binary_expression "uVar12 * 0x18" identifier * number_literal))) ;) (expression_statement "uVar6 = (uint)*(ushort *)(local_40[0] + 6);" (assignment_expression "uVar6 = (uint)*(ushort *)(local_40[0] + 6)" identifier = (binary_expression "(uint)*(ushort *)(local_40[0] + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(local_40[0] + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[0] + 6)" ( (binary_expression "local_40[0] + 6" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }" if (parenthesized_expression "(uVar6 < 0xff00)" ( (binary_expression "uVar6 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }" { (labeled_statement "LAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;" statement_identifier : (if_statement "if (uVar6 == 0) goto LAB_0008dd74;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008dd74;" goto statement_identifier ;))) (expression_statement "local_1f4 = param_4[0xf];" (assignment_expression "local_1f4 = param_4[0xf]" identifier = (subscript_expression "param_4[0xf]" identifier [ number_literal ])) ;) (if_statement "if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }" if (parenthesized_expression "((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6)" ( (binary_expression "(uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6" (call_expression "(uint)((int)(local_1f4 - param_4[0xe]) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(local_1f4 - param_4[0xe]) >> 2)" ( (binary_expression "(int)(local_1f4 - param_4[0xe]) >> 2" (cast_expression "(int)(local_1f4 - param_4[0xe])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_1f4 - param_4[0xe])" ( (binary_expression "local_1f4 - param_4[0xe]" identifier - (subscript_expression "param_4[0xe]" identifier [ number_literal ])) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }" { (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x26868b" (pointer_expression "*(int *)(puVar15 + -8)" * (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x26868b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x50b;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x50b" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x26922f" identifier + number_literal)) ;) comment (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_000902f6;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_000902f6" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_000902f6" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;" if (parenthesized_expression "(*(int *)(param_4[0xe] + uVar6 * 4) != 0)" ( (binary_expression "*(int *)(param_4[0xe] + uVar6 * 4) != 0" (pointer_expression "*(int *)(param_4[0xe] + uVar6 * 4)" * (cast_expression "(int *)(param_4[0xe] + uVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[0xe] + uVar6 * 4)" ( (binary_expression "param_4[0xe] + uVar6 * 4" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) + (binary_expression "uVar6 * 4" identifier * number_literal)) )))) != number_literal) )) (goto_statement "goto LAB_0008dd74;" goto statement_identifier ;)) (expression_statement "*(uint *)(puVar15 + -8) = uVar6;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar6" (pointer_expression "*(uint *)(puVar15 + -8)" * (cast_expression "(uint *)(puVar15 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0xc) = param_4;" (assignment_expression "*(int **)(puVar15 + -0xc) = param_4" (pointer_expression "*(int **)(puVar15 + -0xc)" * (cast_expression "(int **)(puVar15 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = param_2" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8de7a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8de7a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = FUN_001e6ec0();" (assignment_expression "uVar12 = FUN_001e6ec0()" identifier = (call_expression "FUN_001e6ec0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar12 = (uVar12 ^ 1) & 0xff;" (assignment_expression "uVar12 = (uVar12 ^ 1) & 0xff" identifier = (binary_expression "(uVar12 ^ 1) & 0xff" (parenthesized_expression "(uVar12 ^ 1)" ( (binary_expression "uVar12 ^ 1" identifier ^ number_literal) )) & number_literal)) ;) }) (else_clause "else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }" else (compound_statement "{\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }" { (if_statement "if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }" if (parenthesized_expression "(uVar6 == 0xffff)" ( (binary_expression "uVar6 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }" { (expression_statement "iVar8 = param_4[0xc];" (assignment_expression "iVar8 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }" { (expression_statement "iVar8 = *param_4;" (assignment_expression "iVar8 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*(int **)(puVar15 + -0x10) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x10) = param_4" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar8 + 0x6c);" (assignment_expression "pcVar1 = *(code **)(iVar8 + 0x6c)" identifier = (pointer_expression "*(code **)(iVar8 + 0x6c)" * (cast_expression "(code **)(iVar8 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x6c)" ( (binary_expression "iVar8 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e4c6" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = (*pcVar1)();" (assignment_expression "iVar8 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "param_4[0xc] = iVar8;" (assignment_expression "param_4[0xc] = iVar8" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "*(uint *)(puVar15 + -8) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar12" (pointer_expression "*(uint *)(puVar15 + -8)" * (cast_expression "(uint *)(puVar15 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0xc) = param_4;" (assignment_expression "*(int **)(puVar15 + -0xc) = param_4" (pointer_expression "*(int **)(puVar15 + -0xc)" * (cast_expression "(int **)(puVar15 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8de35;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8de35" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = FUN_00121c60();" (assignment_expression "uVar6 = FUN_00121c60()" identifier = (call_expression "FUN_00121c60()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0008de38;" goto statement_identifier ;) })) (labeled_statement "LAB_0008dd74:\n          uVar12 = 0;" statement_identifier : (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;)) }))) (expression_statement "*(uint *)(puVar15 + -4) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -4) = uVar12" (pointer_expression "*(uint *)(puVar15 + -4)" * (cast_expression "(uint *)(puVar15 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -8) = local_40;" (assignment_expression "*(int **)(puVar15 + -8) = local_40" (pointer_expression "*(int **)(puVar15 + -8)" * (cast_expression "(int **)(puVar15 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar15 + -0xc) = local_1e8;" (assignment_expression "*(uint *)(puVar15 + -0xc) = local_1e8" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)(puVar15 + -0x10) = local_1d8;" (assignment_expression "*(int ***)(puVar15 + -0x10) = local_1d8" (pointer_expression "*(int ***)(puVar15 + -0x10)" * (cast_expression "(int ***)(puVar15 + -0x10)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = param_9;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = param_9" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar15 + -0x18) = param_5;" (assignment_expression "*(uint *)(puVar15 + -0x18) = param_5" (pointer_expression "*(uint *)(puVar15 + -0x18)" * (cast_expression "(uint *)(puVar15 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(int **)(puVar15 + -0x1c)" * (cast_expression "(int **)(puVar15 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x20) = param_1;" (assignment_expression "*(int *)(puVar15 + -0x20) = param_1" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8dda5;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8dda5" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008c5a0();" (call_expression "FUN_0008c5a0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }" else (compound_statement "{\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }" { (if_statement "if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }" if (parenthesized_expression "(uVar12 < (uint)param_4[0x2c])" ( (binary_expression "uVar12 < (uint)param_4[0x2c]" identifier < (cast_expression "(uint)param_4[0x2c]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0x2c]" identifier [ number_literal ]))) )) (compound_statement "{\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }" { (labeled_statement "LAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;" statement_identifier : (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377" (pointer_expression "*(int *)(puVar15 + -8)" * (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x268377" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x6a;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x6a" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;" (assignment_expression "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI" (pointer_expression "*(undefined **)(puVar15 + -0x10)" * (cast_expression "(undefined **)(puVar15 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "&UNK_002693fc + unaff_EDI" (pointer_expression "&UNK_002693fc" & identifier) + identifier)) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x9024a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x9024a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar12 = uVar12 - param_4[0x2c];" (assignment_expression "uVar12 = uVar12 - param_4[0x2c]" identifier = (binary_expression "uVar12 - param_4[0x2c]" identifier - (subscript_expression "param_4[0x2c]" identifier [ number_literal ]))) ;) (expression_statement "local_1f4 = param_4[0x30];" (assignment_expression "local_1f4 = param_4[0x30]" identifier = (subscript_expression "param_4[0x30]" identifier [ number_literal ])) ;) (if_statement "if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }" if (parenthesized_expression "((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12)" ( (binary_expression "(uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12" (call_expression "(uint)((int)(local_1f4 - param_4[0x2f]) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(local_1f4 - param_4[0x2f]) >> 2)" ( (binary_expression "(int)(local_1f4 - param_4[0x2f]) >> 2" (cast_expression "(int)(local_1f4 - param_4[0x2f])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_1f4 - param_4[0x2f])" ( (binary_expression "local_1f4 - param_4[0x2f]" identifier - (subscript_expression "param_4[0x2f]" identifier [ number_literal ])) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }" { (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x26870b" (pointer_expression "*(int *)(puVar15 + -8)" * (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x26870b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x26922f" identifier + number_literal)) ;) comment (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_00090281;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_00090281" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_00090281" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);" (assignment_expression "uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4)" identifier = (pointer_expression "*(uint *)(param_4[0x2f] + uVar12 * 4)" * (cast_expression "(uint *)(param_4[0x2f] + uVar12 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[0x2f] + uVar12 * 4)" ( (binary_expression "param_4[0x2f] + uVar12 * 4" (subscript_expression "param_4[0x2f]" identifier [ number_literal ]) + (binary_expression "uVar12 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (uVar12 == 0) goto LAB_00090230;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00090230;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }" if (parenthesized_expression "((*(byte *)(uVar12 + 0x2a) & 0x10) == 0)" ( (binary_expression "(*(byte *)(uVar12 + 0x2a) & 0x10) == 0" (parenthesized_expression "(*(byte *)(uVar12 + 0x2a) & 0x10)" ( (binary_expression "*(byte *)(uVar12 + 0x2a) & 0x10" (pointer_expression "*(byte *)(uVar12 + 0x2a)" * (cast_expression "(byte *)(uVar12 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x2a)" ( (binary_expression "uVar12 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }" { (expression_statement "iVar8 = local_16c;" (assignment_expression "iVar8 = local_16c" identifier = identifier) ;) (if_statement "if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;" if (parenthesized_expression "((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77))))" ( (binary_expression "(((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))" (parenthesized_expression "(((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d))" ( (binary_expression "((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)" (parenthesized_expression "((local_1e8 - 10 & 0xfffffff7) != 0)" ( (binary_expression "(local_1e8 - 10 & 0xfffffff7) != 0" (parenthesized_expression "(local_1e8 - 10 & 0xfffffff7)" ( (binary_expression "local_1e8 - 10 & 0xfffffff7" (binary_expression "local_1e8 - 10" identifier - number_literal) & number_literal) )) != number_literal) )) && (parenthesized_expression "(2 < local_1e8 - 0x1d)" ( (binary_expression "2 < local_1e8 - 0x1d" number_literal < (binary_expression "local_1e8 - 0x1d" identifier - number_literal)) ))) )) && (parenthesized_expression "((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))" ( (parenthesized_expression "(local_1e8 != 0x3c && (1 < local_1e8 - 0x77))" ( (binary_expression "local_1e8 != 0x3c && (1 < local_1e8 - 0x77)" (binary_expression "local_1e8 != 0x3c" identifier != number_literal) && (parenthesized_expression "(1 < local_1e8 - 0x77)" ( (binary_expression "1 < local_1e8 - 0x77" number_literal < (binary_expression "local_1e8 - 0x77" identifier - number_literal)) ))) )) ))) )) (goto_statement "goto LAB_0008df60;" goto statement_identifier ;)) (labeled_statement "LAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }" statement_identifier : (if_statement "if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }" if (parenthesized_expression "(*(uint *)(param_1 + 0xb0) != uVar12)" ( (binary_expression "*(uint *)(param_1 + 0xb0) != uVar12" (pointer_expression "*(uint *)(param_1 + 0xb0)" * (cast_expression "(uint *)(param_1 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }" { (if_statement "if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;" if (parenthesized_expression "(*(uint *)(param_1 + 0xb4) != uVar12)" ( (binary_expression "*(uint *)(param_1 + 0xb4) != uVar12" (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) != identifier) )) (goto_statement "goto LAB_0008df60;" goto statement_identifier ;)) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;) (if_statement "if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;" if (parenthesized_expression "((iVar8 != 1) && (iVar8 == 2))" ( (binary_expression "(iVar8 != 1) && (iVar8 == 2)" (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) && (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) ))) )) (goto_statement "goto LAB_0008dda8;" goto statement_identifier ;)) (goto_statement "goto LAB_0008e080;" goto statement_identifier ;) }))) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;) (expression_statement "uVar6 = uVar12;" (assignment_expression "uVar6 = uVar12" identifier = identifier) ;) (if_statement "if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;" if (parenthesized_expression "((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2))" ( (binary_expression "(iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)" (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)" ( (comma_expression "uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xb0)" identifier = (pointer_expression "*(uint *)(param_1 + 0xb0)" * (cast_expression "(uint *)(param_1 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) ))))) , (binary_expression "iVar8 != 2" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0008dfbd;" goto statement_identifier ;)) }) (else_clause "else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }" else (compound_statement "{\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }" { (expression_statement "*(uint *)(puVar15 + -0xc) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -0xc) = uVar12" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = param_2" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8df18;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8df18" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = FUN_001e6f30();" (assignment_expression "uVar12 = FUN_001e6f30()" identifier = (call_expression "FUN_001e6f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = local_16c;" (assignment_expression "iVar8 = local_16c" identifier = identifier) ;) (if_statement "if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;" if (parenthesized_expression "((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0))" ( (binary_expression "(((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)" (parenthesized_expression "(((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2))" ( (binary_expression "((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)" (parenthesized_expression "((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c))" ( (binary_expression "(((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)" (parenthesized_expression "(((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3))" ( (binary_expression "((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)" (parenthesized_expression "((local_1e8 - 10 & 0xfffffff7) == 0)" ( (binary_expression "(local_1e8 - 10 & 0xfffffff7) == 0" (parenthesized_expression "(local_1e8 - 10 & 0xfffffff7)" ( (binary_expression "local_1e8 - 10 & 0xfffffff7" (binary_expression "local_1e8 - 10" identifier - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_1e8 - 0x1d < 3)" ( (binary_expression "local_1e8 - 0x1d < 3" (binary_expression "local_1e8 - 0x1d" identifier - number_literal) < number_literal) ))) )) || (parenthesized_expression "(local_1e8 == 0x3c)" ( (binary_expression "local_1e8 == 0x3c" identifier == number_literal) ))) )) || (parenthesized_expression "(local_1e8 - 0x77 < 2)" ( (binary_expression "local_1e8 - 0x77 < 2" (binary_expression "local_1e8 - 0x77" identifier - number_literal) < number_literal) ))) )) && (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0008e048;" goto statement_identifier ;)) (labeled_statement "LAB_0008df60:\n          local_16c = 0;" statement_identifier : (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;)) (if_statement "if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" if (parenthesized_expression "((iVar8 == 0) || (local_168 == 0))" ( (binary_expression "(iVar8 == 0) || (local_168 == 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_168 == 0)" ( (binary_expression "local_168 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" { (expression_statement "uVar6 = *(uint *)(param_1 + 0xb0);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xb0)" identifier = (pointer_expression "*(uint *)(param_1 + 0xb0)" * (cast_expression "(uint *)(param_1 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" else (compound_statement "{\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" { (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x2699db" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8df91;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8df91" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = gettext();" (assignment_expression "uVar7 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = local_15c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = local_15c" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = local_160;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = local_160" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = local_164;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = local_164" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x20) = local_168;" (assignment_expression "*(int *)(puVar15 + -0x20) = local_168" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8dfb1" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000d1a30();" (call_expression "FUN_000d1a30()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar6 = *(uint *)(param_1 + 0xb0);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xb0)" identifier = (pointer_expression "*(uint *)(param_1 + 0xb0)" * (cast_expression "(uint *)(param_1 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);" statement_identifier : (expression_statement "local_1f4 = *(uint *)(param_1 + 0xb4);" (assignment_expression "local_1f4 = *(uint *)(param_1 + 0xb4)" identifier = (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) ))))) ;)) (if_statement "if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }" if (parenthesized_expression "((local_1f4 == 0) || (uVar6 != uVar12))" ( (binary_expression "(local_1f4 == 0) || (uVar6 != uVar12)" (parenthesized_expression "(local_1f4 == 0)" ( (binary_expression "local_1f4 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar6 != uVar12)" ( (binary_expression "uVar6 != uVar12" identifier != identifier) ))) )) (compound_statement "{\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }" { (labeled_statement "LAB_0008e080:\n            local_1f4 = uVar12;" statement_identifier : (expression_statement "local_1f4 = uVar12;" (assignment_expression "local_1f4 = uVar12" identifier = identifier) ;)) (if_statement "if (local_1e8 != 0x6b) goto LAB_0008dfe9;" if (parenthesized_expression "(local_1e8 != 0x6b)" ( (binary_expression "local_1e8 != 0x6b" identifier != number_literal) )) (goto_statement "goto LAB_0008dfe9;" goto statement_identifier ;)) (labeled_statement "LAB_0008e093:\n            local_16c = 1;" statement_identifier : (expression_statement "local_16c = 1;" (assignment_expression "local_16c = 1" identifier = number_literal) ;)) (expression_statement "*(uint *)(puVar15 + -0x10) = local_1f4;" (assignment_expression "*(uint *)(puVar15 + -0x10) = local_1f4" (pointer_expression "*(uint *)(puVar15 + -0x10)" * (cast_expression "(uint *)(puVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e0ad" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6ba0();" (call_expression "FUN_001e6ba0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }" { comment (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_0009035c;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_0009035c" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_0009035c" & identifier)) ;) (expression_statement "FUN_00052750();" (call_expression "FUN_00052750()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }" statement_identifier : (if_statement "if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }" if (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0'))" ( (binary_expression "(*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')" (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar8 + 0x3ef5) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x3ef5) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x3ef5)" * (cast_expression "(char *)(iVar8 + 0x3ef5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3ef5)" ( (binary_expression "iVar8 + 0x3ef5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              local_16c = 2;\n            }" { (expression_statement "local_16c = 2;" (assignment_expression "local_16c = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }" else (compound_statement "{\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }" { (if_statement "if (local_1e8 == 0x6b) goto LAB_0008e093;" if (parenthesized_expression "(local_1e8 == 0x6b)" ( (binary_expression "local_1e8 == 0x6b" identifier == number_literal) )) (goto_statement "goto LAB_0008e093;" goto statement_identifier ;)) (labeled_statement "LAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }" statement_identifier : (if_statement "if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }" if (parenthesized_expression "(local_1e8 == 0x6c)" ( (binary_expression "local_1e8 == 0x6c" identifier == number_literal) )) (compound_statement "{\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }" { (expression_statement "local_16c = 1;" (assignment_expression "local_16c = 1" identifier = number_literal) ;) (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }" { comment (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_0008e4b2;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_0008e4b2" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_0008e4b2" & identifier)) ;) (expression_statement "FUN_00052750();" (call_expression "FUN_00052750()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0008e0c3;" goto statement_identifier ;) }))) }))) (expression_statement "local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;" (assignment_expression "local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf" identifier = (binary_expression "*(byte *)(local_1f4 + 0x28) & 0xf" (pointer_expression "*(byte *)(local_1f4 + 0x28)" * (cast_expression "(byte *)(local_1f4 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0x28)" ( (binary_expression "local_1f4 + 0x28" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);" (assignment_expression "local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10)" identifier = (cast_expression "(undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_200._1_3_,local_1f8 == 10)" identifier (argument_list "(local_200._1_3_,local_1f8 == 10)" ( (field_expression "local_200._1_3_" identifier . field_identifier) , (binary_expression "local_1f8 == 10" identifier == number_literal) ))))) ;) (if_statement "if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" if (parenthesized_expression "(local_1f8 == 10)" ( (binary_expression "local_1f8 == 10" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }" { (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e336;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e336" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_20c = FUN_0004f6b0();" (assignment_expression "local_20c = FUN_0004f6b0()" identifier = (call_expression "FUN_0004f6b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" if (parenthesized_expression "(local_20c == '\0')" ( (binary_expression "local_20c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" { (if_statement "if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }" if (parenthesized_expression "(local_1e8 < 0xff)" ( (binary_expression "local_1e8 < 0xff" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }" { comment comment (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16)" ( (binary_expression "*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25fbb3 + local_1e8 * 4)" ( (binary_expression "unaff_EDI + 0x25fbb3 + local_1e8 * 4" (binary_expression "unaff_EDI + 0x25fbb3" identifier + number_literal) + (binary_expression "local_1e8 * 4" identifier * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" else (compound_statement "{\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" { (expression_statement "local_22c = local_1d8[0][3];" (assignment_expression "local_22c = local_1d8[0][3]" identifier = (subscript_expression "local_1d8[0][3]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;) (expression_statement "local_220 = local_1d8[0][5];" (assignment_expression "local_220 = local_1d8[0][5]" identifier = (subscript_expression "local_1d8[0][5]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;) (expression_statement "local_21c = local_1e8 & 0x7fffffff;" (assignment_expression "local_21c = local_1e8 & 0x7fffffff" identifier = (binary_expression "local_1e8 & 0x7fffffff" identifier & number_literal)) ;) (expression_statement "local_230 = local_1d8[0][1];" (assignment_expression "local_230 = local_1d8[0][1]" identifier = (subscript_expression "local_1d8[0][1]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;) (expression_statement "local_224 = local_1d8[0][4];" (assignment_expression "local_224 = local_1d8[0][4]" identifier = (subscript_expression "local_1d8[0][4]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;) (expression_statement "local_234 = *local_1d8[0];" (assignment_expression "local_234 = *local_1d8[0]" identifier = (pointer_expression "*local_1d8[0]" * (subscript_expression "local_1d8[0]" identifier [ number_literal ]))) ;) (expression_statement "puVar3 = *(undefined4 **)(param_1 + 0x78);" (assignment_expression "puVar3 = *(undefined4 **)(param_1 + 0x78)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x78)" * (cast_expression "(undefined4 **)(param_1 + 0x78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (if_statement "if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }" if (parenthesized_expression "(puVar3 == *(undefined4 **)(param_1 + 0x7c))" ( (binary_expression "puVar3 == *(undefined4 **)(param_1 + 0x7c)" identifier == (pointer_expression "*(undefined4 **)(param_1 + 0x7c)" * (cast_expression "(undefined4 **)(param_1 + 0x7c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) )) (compound_statement "{\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }" { (expression_statement "local_23c = *(undefined4 **)(param_1 + 0x74);" (assignment_expression "local_23c = *(undefined4 **)(param_1 + 0x74)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x74)" * (cast_expression "(undefined4 **)(param_1 + 0x74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "local_244 = (int)puVar3 - (int)local_23c;" (assignment_expression "local_244 = (int)puVar3 - (int)local_23c" identifier = (binary_expression "(int)puVar3 - (int)local_23c" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_23c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar12 = local_244 >> 5;" (assignment_expression "uVar12 = local_244 >> 5" identifier = (binary_expression "local_244 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }" { (expression_statement "local_240 = (undefined4 *)0x20;" (assignment_expression "local_240 = (undefined4 *)0x20" identifier = (cast_expression "(undefined4 *)0x20" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;" statement_identifier : (expression_statement "*(undefined4 **)(puVar15 + -0x10) = local_240;" (assignment_expression "*(undefined4 **)(puVar15 + -0x10) = local_240" (pointer_expression "*(undefined4 **)(puVar15 + -0x10)" * (cast_expression "(undefined4 **)(puVar15 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8f9b2" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_238 = (undefined4 *)FUN_00246670();" (assignment_expression "local_238 = (undefined4 *)FUN_00246670()" identifier = (cast_expression "(undefined4 *)FUN_00246670()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_248 = (int)local_240 + (int)local_238;" (assignment_expression "local_248 = (int)local_240 + (int)local_238" identifier = (binary_expression "(int)local_240 + (int)local_238" (cast_expression "(int)local_240" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_238" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_240 = local_238 + 8;" (assignment_expression "local_240 = local_238 + 8" identifier = (binary_expression "local_238 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }" else (compound_statement "{\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }" { (expression_statement "uVar6 = uVar12 * 2;" (assignment_expression "uVar6 = uVar12 * 2" identifier = (binary_expression "uVar12 * 2" identifier * number_literal)) ;) (if_statement "if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }" if (parenthesized_expression "(uVar6 < uVar12)" ( (binary_expression "uVar6 < uVar12" identifier < identifier) )) (compound_statement "{\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }" { (expression_statement "local_240 = (undefined4 *)0xffffffe0;" (assignment_expression "local_240 = (undefined4 *)0xffffffe0" identifier = (cast_expression "(undefined4 *)0xffffffe0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0008f9a2;" goto statement_identifier ;) })) (expression_statement "local_240 = (undefined4 *)0xffffffe0;" (assignment_expression "local_240 = (undefined4 *)0xffffffe0" identifier = (cast_expression "(undefined4 *)0xffffffe0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0x7ffffff < uVar6) goto LAB_0008f9a2;" if (parenthesized_expression "(0x7ffffff < uVar6)" ( (binary_expression "0x7ffffff < uVar6" number_literal < identifier) )) (goto_statement "goto LAB_0008f9a2;" goto statement_identifier ;)) (if_statement "if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }" { (expression_statement "local_240 = (undefined4 *)(uVar12 << 6);" (assignment_expression "local_240 = (undefined4 *)(uVar12 << 6)" identifier = (cast_expression "(undefined4 *)(uVar12 << 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 << 6)" ( (binary_expression "uVar12 << 6" identifier << number_literal) )))) ;) (goto_statement "goto LAB_0008f9a2;" goto statement_identifier ;) })) (expression_statement "local_240 = (undefined4 *)0x20;" (assignment_expression "local_240 = (undefined4 *)0x20" identifier = (cast_expression "(undefined4 *)0x20" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_248 = 0;" (assignment_expression "local_248 = 0" identifier = number_literal) ;) (expression_statement "local_238 = (undefined4 *)0x0;" (assignment_expression "local_238 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "puVar10 = (undefined4 *)(local_244 + (int)local_238);" (assignment_expression "puVar10 = (undefined4 *)(local_244 + (int)local_238)" identifier = (cast_expression "(undefined4 *)(local_244 + (int)local_238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_244 + (int)local_238)" ( (binary_expression "local_244 + (int)local_238" identifier + (cast_expression "(int)local_238" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*puVar10 = param_4;" (assignment_expression "*puVar10 = param_4" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "puVar10[3] = local_230;" (assignment_expression "puVar10[3] = local_230" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[4] = puVar10[4] & 0x80000000 | local_21c;" (assignment_expression "puVar10[4] = puVar10[4] & 0x80000000 | local_21c" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = (binary_expression "puVar10[4] & 0x80000000 | local_21c" (binary_expression "puVar10[4] & 0x80000000" (subscript_expression "puVar10[4]" identifier [ number_literal ]) & number_literal) | identifier)) ;) (expression_statement "puVar10[1] = param_5;" (assignment_expression "puVar10[1] = param_5" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;" (assignment_expression "*(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f" (pointer_expression "*(byte *)((int)puVar10 + 0x13)" * (cast_expression "(byte *)((int)puVar10 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x13)" ( (binary_expression "(int)puVar10 + 0x13" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(byte)(local_21c >> 0x18) & 0x7f" (call_expression "(byte)(local_21c >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_21c >> 0x18)" ( (binary_expression "local_21c >> 0x18" identifier >> number_literal) ))) & number_literal)) ;) (expression_statement "puVar10[2] = local_234;" (assignment_expression "puVar10[2] = local_234" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[7] = local_220;" (assignment_expression "puVar10[7] = local_220" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[5] = local_22c;" (assignment_expression "puVar10[5] = local_22c" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[6] = local_224;" (assignment_expression "puVar10[6] = local_224" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = local_238;" (assignment_expression "puVar10 = local_238" identifier = identifier) ;) (expression_statement "puVar13 = local_23c;" (assignment_expression "puVar13 = local_23c" identifier = identifier) ;) (if_statement "if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }" if (parenthesized_expression "(puVar3 != local_23c)" ( (binary_expression "puVar3 != local_23c" identifier != identifier) )) (compound_statement "{\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }" { (do_statement "do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);" do (compound_statement "{\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  }" { (expression_statement "puVar14 = puVar13 + 8;" (assignment_expression "puVar14 = puVar13 + 8" identifier = (binary_expression "puVar13 + 8" identifier + number_literal)) ;) (expression_statement "*puVar10 = *puVar13;" (assignment_expression "*puVar10 = *puVar13" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar10[1] = puVar13[1];" (assignment_expression "puVar10[1] = puVar13[1]" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = (subscript_expression "puVar13[1]" identifier [ number_literal ])) ;) (expression_statement "puVar10[2] = puVar13[2];" (assignment_expression "puVar10[2] = puVar13[2]" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "puVar10[3] = puVar13[3];" (assignment_expression "puVar10[3] = puVar13[3]" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar10[4] = puVar13[4];" (assignment_expression "puVar10[4] = puVar13[4]" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = (subscript_expression "puVar13[4]" identifier [ number_literal ])) ;) (expression_statement "puVar10[5] = puVar13[5];" (assignment_expression "puVar10[5] = puVar13[5]" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = (subscript_expression "puVar13[5]" identifier [ number_literal ])) ;) (expression_statement "puVar10[6] = puVar13[6];" (assignment_expression "puVar10[6] = puVar13[6]" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (subscript_expression "puVar13[6]" identifier [ number_literal ])) ;) (expression_statement "puVar10[7] = puVar13[7];" (assignment_expression "puVar10[7] = puVar13[7]" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = (subscript_expression "puVar13[7]" identifier [ number_literal ])) ;) (expression_statement "puVar10 = puVar10 + 8;" (assignment_expression "puVar10 = puVar10 + 8" identifier = (binary_expression "puVar10 + 8" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) }) while (parenthesized_expression "(puVar3 != puVar14)" ( (binary_expression "puVar3 != puVar14" identifier != identifier) )) ;) (expression_statement "local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);" (assignment_expression "local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40)" identifier = (cast_expression "(undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40)" ( (binary_expression "(int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40" (binary_expression "(int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U)" (cast_expression "(int)local_238" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U)" ( (binary_expression "(int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U" (binary_expression "(int)puVar3 + (-0x20 - (int)local_23c)" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x20 - (int)local_23c)" ( (binary_expression "-0x20 - (int)local_23c" number_literal - (cast_expression "(int)local_23c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) & number_literal) ))) + number_literal) )))) ;) })) (if_statement "if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }" if (parenthesized_expression "(local_23c != (undefined4 *)0x0)" ( (binary_expression "local_23c != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }" { (expression_statement "*(undefined4 **)(puVar15 + -0x10) = local_23c;" (assignment_expression "*(undefined4 **)(puVar15 + -0x10) = local_23c" (pointer_expression "*(undefined4 **)(puVar15 + -0x10)" * (cast_expression "(undefined4 **)(puVar15 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8faba;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8faba" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 **)(param_1 + 0x74) = local_238;" (assignment_expression "*(undefined4 **)(param_1 + 0x74) = local_238" (pointer_expression "*(undefined4 **)(param_1 + 0x74)" * (cast_expression "(undefined4 **)(param_1 + 0x74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 0x78) = local_240;" (assignment_expression "*(undefined4 **)(param_1 + 0x78) = local_240" (pointer_expression "*(undefined4 **)(param_1 + 0x78)" * (cast_expression "(undefined4 **)(param_1 + 0x78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x7c) = local_248;" (assignment_expression "*(int *)(param_1 + 0x7c) = local_248" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }" else (compound_statement "{\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }" { (expression_statement "puVar3[2] = local_234;" (assignment_expression "puVar3[2] = local_234" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[3] = local_230;" (assignment_expression "puVar3[3] = local_230" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar3 = param_4;" (assignment_expression "*puVar3 = param_4" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[4] = puVar3[4] & 0x80000000 | local_21c;" (assignment_expression "puVar3[4] = puVar3[4] & 0x80000000 | local_21c" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = (binary_expression "puVar3[4] & 0x80000000 | local_21c" (binary_expression "puVar3[4] & 0x80000000" (subscript_expression "puVar3[4]" identifier [ number_literal ]) & number_literal) | identifier)) ;) (expression_statement "puVar3[1] = param_5;" (assignment_expression "puVar3[1] = param_5" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;" (assignment_expression "*(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f" (pointer_expression "*(byte *)((int)puVar3 + 0x13)" * (cast_expression "(byte *)((int)puVar3 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + 0x13)" ( (binary_expression "(int)puVar3 + 0x13" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(byte)(local_1e8 >> 0x18) & 0x7f" (call_expression "(byte)(local_1e8 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_1e8 >> 0x18)" ( (binary_expression "local_1e8 >> 0x18" identifier >> number_literal) ))) & number_literal)) ;) (expression_statement "puVar3[5] = local_22c;" (assignment_expression "puVar3[5] = local_22c" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[6] = local_224;" (assignment_expression "puVar3[6] = local_224" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[7] = local_220;" (assignment_expression "puVar3[7] = local_220" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 0x78) = puVar3 + 8;" (assignment_expression "*(undefined4 **)(param_1 + 0x78) = puVar3 + 8" (pointer_expression "*(undefined4 **)(param_1 + 0x78)" * (cast_expression "(undefined4 **)(param_1 + 0x78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) }))) (if_statement "if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }" if (parenthesized_expression "(local_1e8 - 0xb < 3)" ( (binary_expression "local_1e8 - 0xb < 3" (binary_expression "local_1e8 - 0xb" identifier - number_literal) < number_literal) )) (compound_statement "{\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }" { (expression_statement "local_224 = param_4[0x67];" (assignment_expression "local_224 = param_4[0x67]" identifier = (subscript_expression "param_4[0x67]" identifier [ number_literal ])) ;) (expression_statement "local_22c = param_4[0x66];" (assignment_expression "local_22c = param_4[0x66]" identifier = (subscript_expression "param_4[0x66]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = param_4[100];" (assignment_expression "iVar9 = param_4[100]" identifier = (subscript_expression "param_4[100]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = local_224 + (local_22c - iVar9) * 8;" (assignment_expression "iVar8 = local_224 + (local_22c - iVar9) * 8" identifier = (binary_expression "local_224 + (local_22c - iVar9) * 8" identifier + (binary_expression "(local_22c - iVar9) * 8" (parenthesized_expression "(local_22c - iVar9)" ( (binary_expression "local_22c - iVar9" identifier - identifier) )) * number_literal))) ;) (expression_statement "uVar12 = iVar8 - param_4[0x65];" (assignment_expression "uVar12 = iVar8 - param_4[0x65]" identifier = (binary_expression "iVar8 - param_4[0x65]" identifier - (subscript_expression "param_4[0x65]" identifier [ number_literal ]))) ;) (if_statement "if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }" if (parenthesized_expression "(uVar12 <= param_5)" ( (binary_expression "uVar12 <= param_5" identifier <= identifier) )) (compound_statement "{\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }" { (expression_statement "iVar11 = param_4[0x65] + param_5 + 1;" (assignment_expression "iVar11 = param_4[0x65] + param_5 + 1" identifier = (binary_expression "param_4[0x65] + param_5 + 1" (binary_expression "param_4[0x65] + param_5" (subscript_expression "param_4[0x65]" identifier [ number_literal ]) + identifier) + number_literal)) ;) (if_statement "if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }" if (parenthesized_expression "(param_5 + 1 < uVar12)" ( (binary_expression "param_5 + 1 < uVar12" (binary_expression "param_5 + 1" identifier + number_literal) < identifier) )) (compound_statement "{\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }" { (expression_statement "iVar8 = iVar11 + 0x1f;" (assignment_expression "iVar8 = iVar11 + 0x1f" identifier = (binary_expression "iVar11 + 0x1f" identifier + number_literal)) ;) (if_statement "if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }" if (parenthesized_expression "(-1 < iVar11)" ( (binary_expression "-1 < iVar11" number_literal < identifier) )) (compound_statement "{\n                      iVar8 = iVar11;\n                    }" { (expression_statement "iVar8 = iVar11;" (assignment_expression "iVar8 = iVar11" identifier = identifier) ;) })) (expression_statement "iVar8 = iVar9 + (iVar8 >> 5) * 4;" (assignment_expression "iVar8 = iVar9 + (iVar8 >> 5) * 4" identifier = (binary_expression "iVar9 + (iVar8 >> 5) * 4" identifier + (binary_expression "(iVar8 >> 5) * 4" (parenthesized_expression "(iVar8 >> 5)" ( (binary_expression "iVar8 >> 5" identifier >> number_literal) )) * number_literal))) ;) (expression_statement "iVar11 = iVar11 % 0x20;" (assignment_expression "iVar11 = iVar11 % 0x20" identifier = (binary_expression "iVar11 % 0x20" identifier % number_literal)) ;) (if_statement "if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }" if (parenthesized_expression "(iVar11 < 0)" ( (binary_expression "iVar11 < 0" identifier < number_literal) )) (compound_statement "{\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }" { (expression_statement "iVar11 = iVar11 + 0x20;" (assignment_expression "iVar11 = iVar11 + 0x20" identifier = (binary_expression "iVar11 + 0x20" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + -4;" (assignment_expression "iVar8 = iVar8 + -4" identifier = (binary_expression "iVar8 + -4" identifier + number_literal)) ;) })) (expression_statement "param_4[0x66] = iVar8;" (assignment_expression "param_4[0x66] = iVar8" (subscript_expression "param_4[0x66]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0x67] = iVar11;" (assignment_expression "param_4[0x67] = iVar11" (subscript_expression "param_4[0x67]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }" else (compound_statement "{\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }" { (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x14) = iVar11 - iVar8;" (assignment_expression "*(int *)(puVar15 + -0x14) = iVar11 - iVar8" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "iVar11 - iVar8" identifier - identifier)) ;) (expression_statement "*(int *)(puVar15 + -0x18) = local_224;" (assignment_expression "*(int *)(puVar15 + -0x18) = local_224" (pointer_expression "*(int *)(puVar15 + -0x18)" * (cast_expression "(int *)(puVar15 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x1c) = local_22c;" (assignment_expression "*(int *)(puVar15 + -0x1c) = local_22c" (pointer_expression "*(int *)(puVar15 + -0x1c)" * (cast_expression "(int *)(puVar15 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x20) = param_4 + 100;" (assignment_expression "*(int **)(puVar15 + -0x20) = param_4 + 100" (pointer_expression "*(int **)(puVar15 + -0x20)" * (cast_expression "(int **)(puVar15 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (binary_expression "param_4 + 100" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x900aa;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x900aa" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_254 = local_22c;" (assignment_expression "local_254 = local_22c" identifier = identifier) ;) (expression_statement "local_250 = local_224;" (assignment_expression "local_250 = local_224" identifier = identifier) ;) (expression_statement "FUN_000ab3a0();" (call_expression "FUN_000ab3a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = param_4[100];" (assignment_expression "iVar9 = param_4[100]" identifier = (subscript_expression "param_4[100]" identifier [ number_literal ])) ;) }))) })) (expression_statement "*(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;" (assignment_expression "*(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214" (pointer_expression "*(uint *)(iVar9 + local_210)" * (cast_expression "(uint *)(iVar9 + local_210)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + local_210)" ( (binary_expression "iVar9 + local_210" identifier + identifier) )))) = (binary_expression "*(uint *)(iVar9 + local_210) | local_214" (pointer_expression "*(uint *)(iVar9 + local_210)" * (cast_expression "(uint *)(iVar9 + local_210)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + local_210)" ( (binary_expression "iVar9 + local_210" identifier + identifier) )))) | identifier)) ;) })) (expression_statement "*(uint *)(puVar15 + -0x10) = local_1f4;" (assignment_expression "*(uint *)(puVar15 + -0x10) = local_1f4" (pointer_expression "*(uint *)(puVar15 + -0x10)" * (cast_expression "(uint *)(puVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8f2ad" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0006c210();" (call_expression "FUN_0006c210()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }" if (parenthesized_expression "(local_1e8 < 0xff)" ( (binary_expression "local_1e8 < 0xff" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }" { comment comment (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16)" ( (binary_expression "*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25ffaf + local_1e8 * 4)" ( (binary_expression "unaff_EDI + 0x25ffaf + local_1e8 * 4" (binary_expression "unaff_EDI + 0x25ffaf" identifier + number_literal) + (binary_expression "local_1e8 * 4" identifier * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }))) }) (else_clause "else if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" else (if_statement "if (local_1e8 < 0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" if (parenthesized_expression "(local_1e8 < 0xff)" ( (binary_expression "local_1e8 < 0xff" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" { comment comment (expression_statement "(*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();" (call_expression "(*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))" ( (pointer_expression "*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16)" * (cast_expression "(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16)" ( (binary_expression "*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16" (pointer_expression "*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI)" * (cast_expression "(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI)" ( (binary_expression "&UNK_0025f53f + local_1e8 * 4 + unaff_EDI" (binary_expression "&UNK_0025f53f + local_1e8 * 4" (pointer_expression "&UNK_0025f53f" & identifier) + (binary_expression "local_1e8 * 4" identifier * number_literal)) + identifier) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))) (expression_statement "*(uint *)(puVar15 + -0xc) = local_1f4;" (assignment_expression "*(uint *)(puVar15 + -0xc) = local_1f4" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 ***)(puVar15 + -0x10) = local_154;" (assignment_expression "*(undefined1 ***)(puVar15 + -0x10) = local_154" (pointer_expression "*(undefined1 ***)(puVar15 + -0x10)" * (cast_expression "(undefined1 ***)(puVar15 + -0x10)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e377;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e377" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e7ee0();" (call_expression "FUN_001e7ee0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = param_4[1];" (assignment_expression "iVar8 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "local_200 = local_154[0];" (assignment_expression "local_200 = local_154[0]" identifier = (subscript_expression "local_154[0]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;" (assignment_expression "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x269ceb" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e395;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e395" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = gettext();" (assignment_expression "uVar7 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined1 **)(puVar15 + -8) = local_200;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = local_200" (pointer_expression "*(undefined1 **)(puVar15 + -8)" * (cast_expression "(undefined1 **)(puVar15 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar15 + -0xc) = local_1e8;" (assignment_expression "*(uint *)(puVar15 + -0xc) = local_1e8" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = uVar7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = uVar7" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e3ac" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000d1330();" (call_expression "FUN_000d1330()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }" if (parenthesized_expression "(local_154[0] != local_14c)" ( (binary_expression "local_154[0] != local_14c" (subscript_expression "local_154[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }" { (expression_statement "*(undefined1 **)(puVar15 + -0x14) = local_154[0];" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = local_154[0]" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" * (cast_expression "(undefined1 **)(puVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (subscript_expression "local_154[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e3c8" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }" { (expression_statement "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;" (assignment_expression "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x26878f" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x5c" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;" (assignment_expression "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x254654" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x90264;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x90264" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;" if (parenthesized_expression "(*(char *)(iVar8 + 0x3fed) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x3fed) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x3fed)" * (cast_expression "(char *)(iVar8 + 0x3fed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3fed)" ( (binary_expression "iVar8 + 0x3fed" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008e248;" goto statement_identifier ;)) (if_statement "if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }" if (parenthesized_expression "(param_5 == param_4[0x52])" ( (binary_expression "param_5 == param_4[0x52]" identifier == (subscript_expression "param_4[0x52]" identifier [ number_literal ])) )) (compound_statement "{\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }" { (if_statement "if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }" if (parenthesized_expression "(local_1e8 != 0x26)" ( (binary_expression "local_1e8 != 0x26" identifier != number_literal) )) (compound_statement "{\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }" { (labeled_statement "LAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              *(undefined4 *)(puVar15 + -8) = 0x8e463;" statement_identifier : comment (expression_statement "*(undefined4 *)(puVar15 + -8) = 0x8e463;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0x8e463" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "FUN_0008c440();" (call_expression "FUN_0008c440()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto joined_r0x0008e46f;" goto statement_identifier ;) })) (if_statement "if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }" if (parenthesized_expression "(local_1f8 == 10)" ( (binary_expression "local_1f8 == 10" identifier == number_literal) )) (compound_statement "{\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }" { (if_statement "if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }" if (parenthesized_expression "(((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0'))" ( (binary_expression "((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')" (parenthesized_expression "((*(byte *)(param_1 + 8) & 2) != 0)" ( (binary_expression "(*(byte *)(param_1 + 8) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 8) & 2)" ( (binary_expression "*(byte *)(param_1 + 8) & 2" (pointer_expression "*(byte *)(param_1 + 8)" * (cast_expression "(byte *)(param_1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }" { (expression_statement "bVar5 = *(byte *)(iVar8 + 0x2931);" (assignment_expression "bVar5 = *(byte *)(iVar8 + 0x2931)" identifier = (pointer_expression "*(byte *)(iVar8 + 0x2931)" * (cast_expression "(byte *)(iVar8 + 0x2931)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2931)" ( (binary_expression "iVar8 + 0x2931" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;" statement_identifier : (if_statement "if (bVar5 == 0) goto LAB_0008e248;" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008e248;" goto statement_identifier ;))) })) (goto_statement "goto LAB_0008e450;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }" if (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0'))" ( (binary_expression "(*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')" (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar8 + 0x2931) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x2931) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x2931)" * (cast_expression "(char *)(iVar8 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2931)" ( (binary_expression "iVar8 + 0x2931" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }" { (expression_statement "bVar5 = *(byte *)(local_1f4 + 0x2a);" (assignment_expression "bVar5 = *(byte *)(local_1f4 + 0x2a)" identifier = (pointer_expression "*(byte *)(local_1f4 + 0x2a)" * (cast_expression "(byte *)(local_1f4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0x2a)" ( (binary_expression "local_1f4 + 0x2a" identifier + number_literal) ))))) ;) (expression_statement "local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);" (assignment_expression "local_1f8 = CONCAT31(local_1f8._1_3_,bVar5)" identifier = (call_expression "CONCAT31(local_1f8._1_3_,bVar5)" identifier (argument_list "(local_1f8._1_3_,bVar5)" ( (field_expression "local_1f8._1_3_" identifier . field_identifier) , identifier )))) ;) (if_statement "if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;" if (parenthesized_expression "((bVar5 & 7) == 0)" ( (binary_expression "(bVar5 & 7) == 0" (parenthesized_expression "(bVar5 & 7)" ( (binary_expression "bVar5 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }" { (expression_statement "local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));" (assignment_expression "local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b))" identifier = (call_expression "CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b))" identifier (argument_list "(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b))" ( (field_expression "local_1f8._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)(local_1f4 + 0x2b)" * (cast_expression "(byte *)(local_1f4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0x2b)" ( (binary_expression "local_1f4 + 0x2b" identifier + number_literal) )))) )))) ;) (expression_statement "bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;" (assignment_expression "bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)(local_1f4 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(local_1f4 + 0x2b) >> 5" (pointer_expression "*(byte *)(local_1f4 + 0x2b)" * (cast_expression "(byte *)(local_1f4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0x2b)" ( (binary_expression "local_1f4 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;" if (parenthesized_expression "((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0))" ( (binary_expression "(*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)" (parenthesized_expression "(*(int *)(local_1f4 + 0xc) == 0xfff1)" ( (binary_expression "*(int *)(local_1f4 + 0xc) == 0xfff1" (pointer_expression "*(int *)(local_1f4 + 0xc)" * (cast_expression "(int *)(local_1f4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0xc)" ( (binary_expression "local_1f4 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0008e450;" goto statement_identifier ;)) (if_statement "if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;" if (parenthesized_expression "(*(int *)(local_1f4 + 0xc) == 0)" ( (binary_expression "*(int *)(local_1f4 + 0xc) == 0" (pointer_expression "*(int *)(local_1f4 + 0xc)" * (cast_expression "(int *)(local_1f4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0xc)" ( (binary_expression "local_1f4 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto joined_r0x0008e445;" goto statement_identifier ;)) }) (else_clause "else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;" else (if_statement "if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;" if (parenthesized_expression "((byte)((bVar5 & 7) - 3) < 2)" ( (binary_expression "(byte)((bVar5 & 7) - 3) < 2" (call_expression "(byte)((bVar5 & 7) - 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((bVar5 & 7) - 3)" ( (binary_expression "(bVar5 & 7) - 3" (parenthesized_expression "(bVar5 & 7)" ( (binary_expression "bVar5 & 7" identifier & number_literal) )) - number_literal) ))) < number_literal) )) (goto_statement "goto LAB_0008e450;" goto statement_identifier ;)))) })) }) (else_clause "else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }" else (compound_statement "{\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }" { (labeled_statement "joined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }" statement_identifier : (if_statement "if (local_1e8 - 0xf < 0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }" if (parenthesized_expression "(local_1e8 - 0xf < 0x50)" ( (binary_expression "local_1e8 - 0xf < 0x50" (binary_expression "local_1e8 - 0xf" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }" { comment comment (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16)" ( (binary_expression "*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4)" ( (binary_expression "unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4" (binary_expression "unaff_EDI + 0x25f93b" identifier + number_literal) + (binary_expression "(local_1e8 - 0xf) * 4" (parenthesized_expression "(local_1e8 - 0xf)" ( (binary_expression "local_1e8 - 0xf" identifier - number_literal) )) * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) }))) (expression_statement "local_1f8 = 0;" (assignment_expression "local_1f8 = 0" identifier = number_literal) ;) (if_statement "if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }" if (parenthesized_expression "((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52]))))" ( (binary_expression "(((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))" (parenthesized_expression "(((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0))" ( (binary_expression "((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)" (parenthesized_expression "((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0))" ( (binary_expression "(local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)" (parenthesized_expression "(local_1e8 - 0x2f < 0x12)" ( (binary_expression "local_1e8 - 0x2f < 0x12" (binary_expression "local_1e8 - 0x2f" identifier - number_literal) < number_literal) )) && (parenthesized_expression "((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)" ( (binary_expression "(1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0" (parenthesized_expression "(1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU)" ( (binary_expression "1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU" (binary_expression "1 << ((byte)(local_1e8 - 0x2f) & 0x1f)" number_literal << (parenthesized_expression "((byte)(local_1e8 - 0x2f) & 0x1f)" ( (binary_expression "(byte)(local_1e8 - 0x2f) & 0x1f" (call_expression "(byte)(local_1e8 - 0x2f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_1e8 - 0x2f)" ( (binary_expression "local_1e8 - 0x2f" identifier - number_literal) ))) & number_literal) ))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((*(byte *)(local_1f4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(local_1f4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(local_1f4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(local_1f4 + 0x2a) & 7" (pointer_expression "*(byte *)(local_1f4 + 0x2a)" * (cast_expression "(byte *)(local_1f4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0x2a)" ( (binary_expression "local_1f4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))" ( (parenthesized_expression "(piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52]))" ( (comma_expression "piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])" (assignment_expression "piVar2 = *(int **)(local_1f4 + 8)" identifier = (pointer_expression "*(int **)(local_1f4 + 8)" * (cast_expression "(int **)(local_1f4 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_1f4 + 8)" ( (binary_expression "local_1f4 + 8" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])" (binary_expression "(*(byte *)(piVar2 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar2 + 0xb) & 1)" ( (binary_expression "*(byte *)(piVar2 + 0xb) & 1" (pointer_expression "*(byte *)(piVar2 + 0xb)" * (cast_expression "(byte *)(piVar2 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 0xb)" ( (binary_expression "piVar2 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "(iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])" ( (comma_expression "iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52]" (assignment_expression "iVar8 = *(int *)(local_1f4 + 0xc)" identifier = (pointer_expression "*(int *)(local_1f4 + 0xc)" * (cast_expression "(int *)(local_1f4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0xc)" ( (binary_expression "local_1f4 + 0xc" identifier + number_literal) ))))) , (binary_expression "iVar8 == piVar2[0x52]" identifier == (subscript_expression "piVar2[0x52]" identifier [ number_literal ]))) )))) )) ))) )) (compound_statement "{\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0x8e5d1;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0x8e5d1" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = FUN_00053620();" (assignment_expression "iVar9 = FUN_00053620()" identifier = (call_expression "FUN_00053620()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];" (assignment_expression "local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4]" identifier = (binary_expression "*(uint *)(iVar9 + 0x30) + local_1d8[0][4]" (pointer_expression "*(uint *)(iVar9 + 0x30)" * (cast_expression "(uint *)(iVar9 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) + (subscript_expression "local_1d8[0][4]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);" (assignment_expression "local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" identifier = (binary_expression "*(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" (binary_expression "*(int *)(iVar9 + 0x34) + local_1d8[0][5]" (pointer_expression "*(int *)(iVar9 + 0x34)" * (cast_expression "(int *)(iVar9 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x34)" ( (binary_expression "iVar9 + 0x34" identifier + number_literal) )))) + (subscript_expression "local_1d8[0][5]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) + (cast_expression "(uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" identifier (argument_list "(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" ( (pointer_expression "*(uint *)(iVar9 + 0x30)" * (cast_expression "(uint *)(iVar9 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) , (subscript_expression "local_1d8[0][4]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ]) )))))) ;) (expression_statement "pcVar1 = *(code **)(*piVar2 + 0x3c);" (assignment_expression "pcVar1 = *(code **)(*piVar2 + 0x3c)" identifier = (pointer_expression "*(code **)(*piVar2 + 0x3c)" * (cast_expression "(code **)(*piVar2 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x3c)" ( (binary_expression "*piVar2 + 0x3c" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }" if (parenthesized_expression "(pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3))" ( (binary_expression "pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" identifier == (cast_expression "(code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" ( (binary_expression "(int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3" (binary_expression "(int)&__DT_REL[0x26b4].r_info + unaff_EDI" (cast_expression "(int)&__DT_REL[0x26b4].r_info" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_REL[0x26b4].r_info" & (field_expression "__DT_REL[0x26b4].r_info" (subscript_expression "__DT_REL[0x26b4]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) )))) )) (compound_statement "{\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }" { (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x14) = piVar2 + 0x24;" (assignment_expression "*(int **)(puVar15 + -0x14) = piVar2 + 0x24" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "piVar2 + 0x24" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e612;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e612" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar17 = FUN_000b2960();" (assignment_expression "uVar17 = FUN_000b2960()" identifier = (call_expression "FUN_000b2960()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }" else (compound_statement "{\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }" { (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x14) = piVar2;" (assignment_expression "*(int **)(puVar15 + -0x14) = piVar2" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x9018b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x9018b" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar17 = (*pcVar1)();" (assignment_expression "uVar17 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar12 = (uint)((ulonglong)uVar17 >> 0x20);" (assignment_expression "uVar12 = (uint)((ulonglong)uVar17 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar17 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar17 >> 0x20)" ( (binary_expression "(ulonglong)uVar17 >> 0x20" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }" if (parenthesized_expression "((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17)))" ( (binary_expression "(local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))" (parenthesized_expression "(local_1e8 != 0x32)" ( (binary_expression "local_1e8 != 0x32" identifier != number_literal) )) && (parenthesized_expression "(local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))" ( (binary_expression "local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17)" (binary_expression "local_1f0 < uVar12" identifier < identifier) || (binary_expression "local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17)" (binary_expression "local_1f0 - uVar12" identifier - identifier) < (call_expression "(uint)(local_1f4 < (uint)uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_1f4 < (uint)uVar17)" ( (binary_expression "local_1f4 < (uint)uVar17" identifier < (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ))) )) (compound_statement "{\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }" { (if_statement "if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }" if (parenthesized_expression "(local_1e8 == 0x40)" ( (binary_expression "local_1e8 == 0x40" identifier == number_literal) )) (compound_statement "{\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }" { (expression_statement "uVar12 = local_1f4;" (assignment_expression "uVar12 = local_1f4" identifier = identifier) ;) (if_statement "if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }" if (parenthesized_expression "(local_1f8 == 0)" ( (binary_expression "local_1f8 == 0" identifier == number_literal) )) (compound_statement "{\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint **)(puVar15 + -0xc) = local_1d0;" (assignment_expression "*(uint **)(puVar15 + -0xc) = local_1d0" (pointer_expression "*(uint **)(puVar15 + -0xc)" * (cast_expression "(uint **)(puVar15 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar15 + -0x10) = param_5;" (assignment_expression "*(uint *)(puVar15 + -0x10) = param_5" (pointer_expression "*(uint *)(puVar15 + -0x10)" * (cast_expression "(uint *)(puVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x14) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x14) = param_4" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x90330;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x90330" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_1f8 = FUN_00121d40();" (assignment_expression "local_1f8 = FUN_00121d40()" identifier = (call_expression "FUN_00121d40()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar12 = extraout_ECX_00;" (assignment_expression "uVar12 = extraout_ECX_00" identifier = identifier) ;) })) (if_statement "if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }" if (parenthesized_expression "(local_1d8[0][1] != 0)" ( (binary_expression "local_1d8[0][1] != 0" (subscript_expression "local_1d8[0][1]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ]) != number_literal) )) (compound_statement "{\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }" { (expression_statement "*(uint *)(puVar15 + -8) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar12" (pointer_expression "*(uint *)(puVar15 + -8)" * (cast_expression "(uint *)(puVar15 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;" (assignment_expression "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x2685ab" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "&UNK_002697a3 + unaff_EDI" (pointer_expression "&UNK_002697a3" & identifier) + identifier)) ;) comment (expression_statement "*(undefined **)(puVar15 + -0x18) = &UNK_000904e5;" (assignment_expression "*(undefined **)(puVar15 + -0x18) = &UNK_000904e5" (pointer_expression "*(undefined **)(puVar15 + -0x18)" * (cast_expression "(undefined **)(puVar15 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&UNK_000904e5" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;" if (parenthesized_expression "((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8))" ( (binary_expression "(*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)" (parenthesized_expression "(*local_1d8[0] + 3U < local_1d0[0])" ( (binary_expression "*local_1d8[0] + 3U < local_1d0[0]" (binary_expression "*local_1d8[0] + 3U" (pointer_expression "*local_1d8[0]" * (subscript_expression "local_1d8[0]" identifier [ number_literal ])) + number_literal) < (subscript_expression "local_1d0[0]" identifier [ number_literal ])) )) && (parenthesized_expression "((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)" ( (binary_expression "(*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8" (parenthesized_expression "(*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc)" ( (binary_expression "*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc" (pointer_expression "*(byte *)(local_1f8 + 3 + *local_1d8[0])" * (cast_expression "(byte *)(local_1f8 + 3 + *local_1d8[0])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f8 + 3 + *local_1d8[0])" ( (binary_expression "local_1f8 + 3 + *local_1d8[0]" (binary_expression "local_1f8 + 3" identifier + number_literal) + (pointer_expression "*local_1d8[0]" * (subscript_expression "local_1d8[0]" identifier [ number_literal ]))) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0008e248;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0x8e698;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0x8e698" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008c440();" (call_expression "FUN_0008c440()" identifier (argument_list "()" ( ))) ;) })) })) }))) (labeled_statement "LAB_0008e248:\n          puVar15 = puVar15 + -4;" statement_identifier : (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;)) (if_statement "if (local_1e8 - 0xe < 0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }" if (parenthesized_expression "(local_1e8 - 0xe < 0x4e)" ( (binary_expression "local_1e8 - 0xe < 0x4e" (binary_expression "local_1e8 - 0xe" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }" { comment comment (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16)" ( (binary_expression "*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4)" ( (binary_expression "unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4" (binary_expression "unaff_EDI + 0x25fa7b" identifier + number_literal) + (binary_expression "(local_1e8 - 0xe) * 4" (parenthesized_expression "(local_1e8 - 0xe)" ( (binary_expression "local_1e8 - 0xe" identifier - number_literal) )) * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }))) }))) (labeled_statement "LAB_0008dda8:\n      local_1ec = local_1ec + 1;" statement_identifier : (expression_statement "local_1ec = local_1ec + 1;" (assignment_expression "local_1ec = local_1ec + 1" identifier = (binary_expression "local_1ec + 1" identifier + number_literal)) ;)) (expression_statement "param_7 = param_7 + 6;" (assignment_expression "param_7 = param_7 + 6" identifier = (binary_expression "param_7 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_8 != local_1ec)" ( (binary_expression "param_8 != local_1ec" identifier != identifier) )) ;) (if_statement "if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }" if (parenthesized_expression "((local_16c != 0) && (local_168 != 0))" ( (binary_expression "(local_16c != 0) && (local_168 != 0)" (parenthesized_expression "(local_16c != 0)" ( (binary_expression "local_16c != 0" identifier != number_literal) )) && (parenthesized_expression "(local_168 != 0)" ( (binary_expression "local_168 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }" { (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x2699db" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8dde7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8dde7" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = gettext();" (assignment_expression "uVar7 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = local_15c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = local_15c" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = local_160;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = local_160" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = local_164;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = local_164" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x20) = local_168;" (assignment_expression "*(int *)(puVar15 + -0x20) = local_168" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8de07;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8de07" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000d1a30();" (call_expression "FUN_000d1a30()" identifier (argument_list "()" ( ))) ;) })) })) (return_statement "return;" return ;) })))
(ERROR "/* WARNING: Removing unreachable block (ram,0x0008df80) */\n/* WARNING: Removing unreachable block (ram,0x0008ddd6) */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void scan_relocs(Target_powerpc<64,_false> * this, Symbol_table *\n   symtab, Layout * layout, Sized_relobj_file<64,_false> * object, uint data_shndx, uint sh_type,\n   uchar * prelocs, size_t reloc_count, Output_section * output_section, bool\n   needs_special_offset_handling, size_t local_symbol_count, uchar * plocal_symbols) */\n\nvoid __thiscall\nanon_unknown.dwarf_2af53c::Target_powerpc<64,_false>::scan_relocs\n          (Target_powerpc<64,_false> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<64,_false> *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  pointer ppOVar1;\n  pointer ppSVar2;\n  Layout *this_00;\n  size_type sVar3;\n  __bucket_type *pp_Var4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  pointer pBVar9;\n  pointer pcVar10;\n  uint *puVar11;\n  pointer pBVar12;\n  uint uVar13;\n  iterator __position;\n  Elf_Swxword EVar14;\n  Tls_get_addr TVar15;\n  bool bVar16;\n  byte bVar17;\n  uint uVar18;\n  Layout *pLVar19;\n  int iVar20;\n  undefined1 *puVar21;\n  char *pcVar22;\n  Xindex *this_01;\n  Sized_symbol<64> *pSVar23;\n  Symbols_data *pSVar24;\n  uint uVar25;\n  Symbol *pSVar26;\n  uchar *puVar27;\n  undefined4 *puVar28;\n  pointer pBVar29;\n  int iVar30;\n  char cVar31;\n  Layout *pLVar32;\n  pointer pBVar33;\n  pointer pBVar34;\n  uint uVar35;\n  uchar **ppuVar36;\n  anon_enum_32 insn_check;\n  int unaff_EDI;\n  int iVar37;\n  Elf_WXword EVar38;\n  Layout *in_stack_fffffd98;\n  Layout *data_shndx_00;\n  Layout *in_stack_fffffd9c;\n  Symbol *in_stack_fffffda0;\n  Powerpc_relobj<64,_false> *in_stack_fffffda4;\n  Symbol *in_stack_fffffda8;\n  uint *in_stack_fffffdac;\n  uint *puVar39;\n  pointer local_248;\n  pointer local_240;\n  pointer local_238;\n  size_t local_1ec;\n  Reltype reloc;\n  __node_gen_type __node_gen;\n  section_size_type slen;\n  Symbol_location loc;\n  Scan scan;\n  Symbol *local_154;\n  Symbol local_14c [5];\n  Sym<64,_false> lsym;\n  \n  __x86_get_pc_thunk_di();\n  iVar37 = unaff_EDI + 0x3863e7;\n  if (this->plt_localentry0_init_ == false) {\n    cVar31 = false;\n    if ((this->field_0x8 & 2) != 0) {\n      iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n      }\n      cVar31 = *(char *)(iVar20 + 0x2b60);\n      if ((cVar31 != '\0') && (cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0')) {\n        in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6);\n        in_stack_fffffd9c = (Layout *)0x0;\n        pSVar26 = gold::Symbol_table::lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);\n        if (pSVar26 == (Symbol *)0x0) {\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);\n          gold::gold_warning(pcVar22);\n        }\n      }\n    }\n    this->plt_localentry0_ = (bool)cVar31;\n    this->plt_localentry0_init_ = true;\n  }\n  if (sh_type == 9) {\n    pcVar10 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n              _M_p;\n    pcVar22 = (char *)gettext(unaff_EDI + 0x269cc7);\n    gold::gold_error(pcVar22,pcVar10);\n    return;\n  }\n  scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n  if (reloc_count != 0) {\n    local_1ec = 0;\n    do {\n      TVar15 = scan.super_Track_tls.tls_get_addr_state_;\n      reloc.p_ = (Rela_data<64> *)prelocs;\n      if ((needs_special_offset_handling) &&\n         (bVar16 = gold::Output_section::is_input_address_mapped\n                             (output_section,(Relobj *)object,data_shndx,*(off_t *)prelocs), !bVar16\n         )) goto _L18143;\n      data_shndx_00 = *(Layout **)&(reloc.p_)->r_info;\n      uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n      if (uVar35 < param_10) {\n        if (plocal_symbols == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x4d,(char *)(unaff_EDI + 0x268377));\n        }\n        lsym.p_ = (Sym_data<64> *)(plocal_symbols + uVar35 * 0x18);\n        uVar18 = (uint)(lsym.p_)->st_shndx;\n        if (uVar18 < 0xff00) {\nLAB_0008de38:\n          if (uVar18 == 0) goto LAB_0008dd74;\n          ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((uint)((int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar1 >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b));\n          }\n          if (ppOVar1[uVar18] != (Output_section *)0x0) goto LAB_0008dd74;\n          bVar16 = gold::Symbol_table::is_section_folded(symtab,(Relobj *)object,uVar18);\n          in_stack_fffffda0 = (Symbol *)(uint)!bVar16;\n        }\n        else {\n          if (uVar18 == 0xffff) {\n            this_01 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = (Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object);\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            uVar18 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)object,uVar35);\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          in_stack_fffffda0 = (Symbol *)0x0;\n        }\n        in_stack_fffffd9c = (Layout *)&lsym;\n                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */\n        Scan::local((Scan *)this,(Symbol_table *)object,(Layout *)data_shndx,\n                    (Target_powerpc<64,_false> *)output_section,\n                    (Sized_relobj_file<64,_false> *)&reloc,(uint)data_shndx_00,\n                    (Output_section *)in_stack_fffffd9c,(Rela<64,_false> *)in_stack_fffffda0,\n                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0));\n        in_stack_fffffd98 = data_shndx_00;\n      }\n      else {\n        if (uVar35 < object->local_symbol_count_) {\nLAB_00090230:\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));\n        }\n        uVar35 = uVar35 - object->local_symbol_count_;\n        ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if ((uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2) <= uVar35) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));\n        }\n        pLVar19 = (Layout *)ppSVar2[uVar35];\n        if (pLVar19 == (Layout *)0x0) goto LAB_00090230;\n        if (((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000) == 0) {\n          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;\nLAB_0008e048:\n          if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }\n          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n          pLVar32 = pLVar19;\n          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))\n          goto LAB_0008dfbd;\n        }\n        else {\n          in_stack_fffffd98 = pLVar19;\n          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);\n          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;\nLAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;\nLAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;\n          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }\n          if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;\n          if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }\n          gold::Symbol::demangled_name((Symbol *)this_00);\n          in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);\n          in_stack_fffffd9c = data_shndx_00;\n          in_stack_fffffda0 = local_154;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          gold::gold_error(pcVar22);\n          if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }\n          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }\n          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }\nLAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);\n          if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }\n        }\n      }\n_L18143:\n      local_1ec = local_1ec + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_1ec);\n  }\n  return;\n}\n\n" comment comment comment comment (declaration "void __thiscall\nanon_unknown.dwarf_2af53c::Target_powerpc<64,_false>::scan_relocs\n          (Target_powerpc<64,_false> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<64,_false> *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  pointer ppOVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_2af53c::" identifier . identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>::scan_relocs\n          (Target_powerpc<64,_false> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<64,_false> *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  pointer" identifier > : : (function_declarator "scan_relocs\n          (Target_powerpc<64,_false> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<64,_false> *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_powerpc<64,_false> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<64,_false> *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_powerpc" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *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)) ))) { identifier) identifier ;) (declaration "pointer ppSVar2;" type_identifier identifier ;) (declaration "Layout *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "size_type sVar3;" type_identifier identifier ;) (declaration "__bucket_type *pp_Var4;" type_identifier (pointer_declarator "*pp_Var4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "pointer pBVar9;" type_identifier identifier ;) (declaration "pointer pcVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "pointer pBVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "Elf_Swxword EVar14;" type_identifier identifier ;) (declaration "Tls_get_addr TVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "Layout *pLVar19;" type_identifier (pointer_declarator "*pLVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "char *pcVar22;" primitive_type (pointer_declarator "*pcVar22" * identifier) ;) (declaration "Xindex *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (expression_statement "Sized_symbol<64> *pSVar23;" (update_expression "Sized_symbol<64> *pSVar23" (binary_expression "Sized_symbol<64> *pSVar23" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*pSVar23" * identifier)) --) ;) (declaration "Symbols_data *pSVar24;" type_identifier (pointer_declarator "*pSVar24" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "Symbol *pSVar26;" type_identifier (pointer_declarator "*pSVar26" * identifier) ;) (declaration "uchar *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "undefined4 *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "pointer pBVar29;" type_identifier identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "char cVar31;" primitive_type identifier ;) (declaration "Layout *pLVar32;" type_identifier (pointer_declarator "*pLVar32" * identifier) ;) (declaration "pointer pBVar33;" type_identifier identifier ;) (declaration "pointer pBVar34;" type_identifier identifier ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "uchar **ppuVar36;" type_identifier (pointer_declarator "**ppuVar36" * (pointer_declarator "*ppuVar36" * identifier)) ;) (declaration "anon_enum_32 insn_check;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int iVar37;" primitive_type identifier ;) (declaration "Elf_WXword EVar38;" type_identifier identifier ;) (declaration "Layout *in_stack_fffffd98;" type_identifier (pointer_declarator "*in_stack_fffffd98" * identifier) ;) (declaration "Layout *data_shndx_00;" type_identifier (pointer_declarator "*data_shndx_00" * identifier) ;) (declaration "Layout *in_stack_fffffd9c;" type_identifier (pointer_declarator "*in_stack_fffffd9c" * identifier) ;) (declaration "Symbol *in_stack_fffffda0;" type_identifier (pointer_declarator "*in_stack_fffffda0" * identifier) ;) (expression_statement "Powerpc_relobj<64,_false> *in_stack_fffffda4;" (update_expression "Powerpc_relobj<64,_false> *in_stack_fffffda4" (binary_expression "Powerpc_relobj<64,_false> *in_stack_fffffda4" (binary_expression "Powerpc_relobj<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*in_stack_fffffda4" * identifier)) --) ;) (declaration "Symbol *in_stack_fffffda8;" type_identifier (pointer_declarator "*in_stack_fffffda8" * identifier) ;) (declaration "uint *in_stack_fffffdac;" type_identifier (pointer_declarator "*in_stack_fffffdac" * identifier) ;) (declaration "uint *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "pointer local_248;" type_identifier identifier ;) (declaration "pointer local_240;" type_identifier identifier ;) (declaration "pointer local_238;" type_identifier identifier ;) (declaration "size_t local_1ec;" primitive_type identifier ;) (declaration "Reltype reloc;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "section_size_type slen;" type_identifier identifier ;) (declaration "Symbol_location loc;" type_identifier identifier ;) (declaration "Scan scan;" type_identifier identifier ;) (declaration "Symbol *local_154;" type_identifier (pointer_declarator "*local_154" * identifier) ;) (declaration "Symbol local_14c [5];" type_identifier (array_declarator "local_14c [5]" identifier [ number_literal ]) ;) (ERROR "Sym<64,_false> lsym" (binary_expression "Sym<64" identifier < number_literal) , (binary_expression "_false> lsym" identifier > identifier)) (expression_statement ";" ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar37 = unaff_EDI + 0x3863e7;" (assignment_expression "iVar37 = unaff_EDI + 0x3863e7" identifier = (binary_expression "unaff_EDI + 0x3863e7" identifier + number_literal)) ;) (if_statement "if (this->plt_localentry0_init_ == false) {\n    cVar31 = false;\n    if ((this->field_0x8 & 2) != 0) {\n      iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n      }\n      cVar31 = *(char *)(iVar20 + 0x2b60);\n      if ((cVar31 != '\0') && (cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0')) {\n        in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6);\n        in_stack_fffffd9c = (Layout *)0x0;\n        pSVar26 = gold::Symbol_table::lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);\n        if (pSVar26 == (Symbol *)0x0) {\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);\n          gold::gold_warning(pcVar22);\n        }\n      }\n    }\n    this->plt_localentry0_ = (bool)cVar31;\n    this->plt_localentry0_init_ = true;\n  }" if (parenthesized_expression "(this->plt_localentry0_init_ == false)" ( (binary_expression "this->plt_localentry0_init_ == false" (field_expression "this->plt_localentry0_init_" identifier -> field_identifier) == false) )) (compound_statement "{\n    cVar31 = false;\n    if ((this->field_0x8 & 2) != 0) {\n      iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n      }\n      cVar31 = *(char *)(iVar20 + 0x2b60);\n      if ((cVar31 != '\0') && (cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0')) {\n        in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6);\n        in_stack_fffffd9c = (Layout *)0x0;\n        pSVar26 = gold::Symbol_table::lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);\n        if (pSVar26 == (Symbol *)0x0) {\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);\n          gold::gold_warning(pcVar22);\n        }\n      }\n    }\n    this->plt_localentry0_ = (bool)cVar31;\n    this->plt_localentry0_init_ = true;\n  }" { (expression_statement "cVar31 = false;" (assignment_expression "cVar31 = false" identifier = false) ;) (if_statement "if ((this->field_0x8 & 2) != 0) {\n      iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n      }\n      cVar31 = *(char *)(iVar20 + 0x2b60);\n      if ((cVar31 != '\0') && (cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0')) {\n        in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6);\n        in_stack_fffffd9c = (Layout *)0x0;\n        pSVar26 = gold::Symbol_table::lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);\n        if (pSVar26 == (Symbol *)0x0) {\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);\n          gold::gold_warning(pcVar22);\n        }\n      }\n    }" if (parenthesized_expression "((this->field_0x8 & 2) != 0)" ( (binary_expression "(this->field_0x8 & 2) != 0" (parenthesized_expression "(this->field_0x8 & 2)" ( (binary_expression "this->field_0x8 & 2" (field_expression "this->field_0x8" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n      }\n      cVar31 = *(char *)(iVar20 + 0x2b60);\n      if ((cVar31 != '\0') && (cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0')) {\n        in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6);\n        in_stack_fffffd9c = (Layout *)0x0;\n        pSVar26 = gold::Symbol_table::lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);\n        if (pSVar26 == (Symbol *)0x0) {\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);\n          gold::gold_warning(pcVar22);\n        }\n      }\n    }" { (expression_statement "iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n      }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n      }" { comment (labeled_statement "gold::do_gold_unreachable\n                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));" (call_expression "do_gold_unreachable\n                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f))" identifier (argument_list "((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f))" ( (cast_expression "(char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                           unaff_EDI + 4)" ( (ERROR "std::__copy_streambufs<wchar_t,std::" identifier : : (comma_expression "__copy_streambufs<wchar_t,std" (binary_expression "__copy_streambufs<wchar_t" identifier < identifier) , identifier) : :) (binary_expression "char_traits<wchar_t>> +\n                           unaff_EDI + 4" identifier < (binary_expression "wchar_t>> +\n                           unaff_EDI + 4" identifier >> (binary_expression "+\n                           unaff_EDI + 4" (unary_expression "+\n                           unaff_EDI" + identifier) + number_literal))) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x26878f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x26878f)" ( (binary_expression "unaff_EDI + 0x26878f" identifier + number_literal) ))) ))) ;)) })) (expression_statement "cVar31 = *(char *)(iVar20 + 0x2b60);" (assignment_expression "cVar31 = *(char *)(iVar20 + 0x2b60)" identifier = (pointer_expression "*(char *)(iVar20 + 0x2b60)" * (cast_expression "(char *)(iVar20 + 0x2b60)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x2b60)" ( (binary_expression "iVar20 + 0x2b60" identifier + number_literal) ))))) ;) (if_statement "if ((cVar31 != '\0') && (cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0')) {\n        in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6);\n        in_stack_fffffd9c = (Layout *)0x0;\n        pSVar26 = gold::Symbol_table::lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);\n        if (pSVar26 == (Symbol *)0x0) {\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);\n          gold::gold_warning(pcVar22);\n        }\n      }" if (parenthesized_expression "((cVar31 != '\0') && (cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0'))" ( (binary_expression "(cVar31 != '\0') && (cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0')" (parenthesized_expression "(cVar31 != '\0')" ( (binary_expression "cVar31 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0')" ( (comma_expression "cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0'" (assignment_expression "cVar31 = *(char *)(iVar20 + 0x2b61)" identifier = (pointer_expression "*(char *)(iVar20 + 0x2b61)" * (cast_expression "(char *)(iVar20 + 0x2b61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x2b61)" ( (binary_expression "iVar20 + 0x2b61" identifier + number_literal) ))))) , (binary_expression "cVar31 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6);\n        in_stack_fffffd9c = (Layout *)0x0;\n        pSVar26 = gold::Symbol_table::lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);\n        if (pSVar26 == (Symbol *)0x0) {\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);\n          gold::gold_warning(pcVar22);\n        }\n      }" { (expression_statement "in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6);" (assignment_expression "in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6)" identifier = (cast_expression "(Layout *)(unaff_EDI + 0x2694d6)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2694d6)" ( (binary_expression "unaff_EDI + 0x2694d6" identifier + number_literal) )))) ;) (expression_statement "in_stack_fffffd9c = (Layout *)0x0;" (assignment_expression "in_stack_fffffd9c = (Layout *)0x0" identifier = (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (ERROR "pSVar26 = gold::" (assignment_expression "pSVar26 = gold" identifier = identifier) : :) (labeled_statement "Symbol_table::lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);" statement_identifier : (ERROR ":" :) (expression_statement "lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);" (call_expression "lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0)" identifier (argument_list "(symtab,(char *)in_stack_fffffd98,(char *)0x0)" ( identifier , (cast_expression "(char *)in_stack_fffffd98" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (if_statement "if (pSVar26 == (Symbol *)0x0) {\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);\n          gold::gold_warning(pcVar22);\n        }" if (parenthesized_expression "(pSVar26 == (Symbol *)0x0)" ( (binary_expression "pSVar26 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);\n          gold::gold_warning(pcVar22);\n        }" { (expression_statement "pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);" (assignment_expression "pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x269c6f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x269c6f)" identifier (argument_list "(unaff_EDI + 0x269c6f)" ( (binary_expression "unaff_EDI + 0x269c6f" identifier + number_literal) ))))) ;) (labeled_statement "gold::gold_warning(pcVar22);" statement_identifier : (ERROR ":" :) (expression_statement "gold_warning(pcVar22);" (call_expression "gold_warning(pcVar22)" identifier (argument_list "(pcVar22)" ( identifier ))) ;)) })) })) })) (expression_statement "this->plt_localentry0_ = (bool)cVar31;" (assignment_expression "this->plt_localentry0_ = (bool)cVar31" (field_expression "this->plt_localentry0_" identifier -> field_identifier) = (cast_expression "(bool)cVar31" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) (expression_statement "this->plt_localentry0_init_ = true;" (assignment_expression "this->plt_localentry0_init_ = true" (field_expression "this->plt_localentry0_init_" identifier -> field_identifier) = true) ;) })) (if_statement "if (sh_type == 9) {\n    pcVar10 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n              _M_p;\n    pcVar22 = (char *)gettext(unaff_EDI + 0x269cc7);\n    gold::gold_error(pcVar22,pcVar10);\n    return;\n  }" if (parenthesized_expression "(sh_type == 9)" ( (binary_expression "sh_type == 9" identifier == number_literal) )) (compound_statement "{\n    pcVar10 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n              _M_p;\n    pcVar22 = (char *)gettext(unaff_EDI + 0x269cc7);\n    gold::gold_error(pcVar22,pcVar10);\n    return;\n  }" { (expression_statement "pcVar10 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n              _M_p;" (assignment_expression "pcVar10 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n              _M_p" identifier = (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n              _M_p" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar22 = (char *)gettext(unaff_EDI + 0x269cc7);" (assignment_expression "pcVar22 = (char *)gettext(unaff_EDI + 0x269cc7)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x269cc7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x269cc7)" identifier (argument_list "(unaff_EDI + 0x269cc7)" ( (binary_expression "unaff_EDI + 0x269cc7" identifier + number_literal) ))))) ;) (labeled_statement "gold::gold_error(pcVar22,pcVar10);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error(pcVar22,pcVar10);" (call_expression "gold_error(pcVar22,pcVar10)" identifier (argument_list "(pcVar22,pcVar10)" ( identifier , identifier ))) ;)) (return_statement "return;" return ;) })) (expression_statement "scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;" (assignment_expression "scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED" (field_expression "scan.super_Track_tls.tls_get_addr_state_" (field_expression "scan.super_Track_tls" identifier . field_identifier) . field_identifier) = identifier) ;) if (parenthesized_expression "(reloc_count != 0)" ( (binary_expression "reloc_count != 0" identifier != number_literal) )) { (expression_statement "local_1ec = 0;" (assignment_expression "local_1ec = 0" identifier = number_literal) ;) do { (expression_statement "TVar15 = scan.super_Track_tls.tls_get_addr_state_;" (assignment_expression "TVar15 = scan.super_Track_tls.tls_get_addr_state_" identifier = (field_expression "scan.super_Track_tls.tls_get_addr_state_" (field_expression "scan.super_Track_tls" identifier . field_identifier) . field_identifier)) ;) (expression_statement "reloc.p_ = (Rela_data<64> *)prelocs;" (assignment_expression "reloc.p_ = (Rela_data<64> *)prelocs" (field_expression "reloc.p_" identifier . field_identifier) = (parenthesized_expression "(Rela_data<64> *)prelocs" ( (binary_expression "Rela_data<64> *)prelocs" (binary_expression "Rela_data<64" identifier < number_literal) > (pointer_expression "*)prelocs" * (ERROR ")" )) identifier)) ))) ;) (if_statement "if ((needs_special_offset_handling) &&\n         (bVar16 = gold::Output_section::is_input_address_mapped\n                             (output_section,(Relobj *)object,data_shndx,*(off_t *)prelocs), !bVar16\n         )) goto _L18143;" if (parenthesized_expression "((needs_special_offset_handling) &&\n         (bVar16 = gold::Output_section::is_input_address_mapped\n                             (output_section,(Relobj *)object,data_shndx,*(off_t *)prelocs), !bVar16\n         ))" ( (binary_expression "(needs_special_offset_handling) &&\n         (bVar16 = gold::Output_section::is_input_address_mapped\n                             (output_section,(Relobj *)object,data_shndx,*(off_t *)prelocs), !bVar16\n         )" (parenthesized_expression "(needs_special_offset_handling)" ( identifier )) && (parenthesized_expression "(bVar16 = gold::Output_section::is_input_address_mapped\n                             (output_section,(Relobj *)object,data_shndx,*(off_t *)prelocs), !bVar16\n         )" ( (ERROR "bVar16 = gold::Output_section::" (assignment_expression "bVar16 = gold" identifier = identifier) : : identifier : :) (comma_expression "is_input_address_mapped\n                             (output_section,(Relobj *)object,data_shndx,*(off_t *)prelocs), !bVar16" (call_expression "is_input_address_mapped\n                             (output_section,(Relobj *)object,data_shndx,*(off_t *)prelocs)" identifier (argument_list "(output_section,(Relobj *)object,data_shndx,*(off_t *)prelocs)" ( identifier , (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "*(off_t *)prelocs" * (cast_expression "(off_t *)prelocs" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) , (unary_expression "!bVar16" ! identifier)) ))) )) (goto_statement "goto _L18143;" goto statement_identifier ;)) (expression_statement "data_shndx_00 = *(Layout **)&(reloc.p_)->r_info;" (assignment_expression "data_shndx_00 = *(Layout **)&(reloc.p_)->r_info" identifier = (pointer_expression "*(Layout **)&(reloc.p_)->r_info" * (cast_expression "(Layout **)&(reloc.p_)->r_info" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(reloc.p_)->r_info" & (field_expression "(reloc.p_)->r_info" (parenthesized_expression "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) )) -> field_identifier))))) ;) (expression_statement "uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);" (assignment_expression "uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4)" identifier = (pointer_expression "*(uint *)((int)&(reloc.p_)->r_info + 4)" * (cast_expression "(uint *)((int)&(reloc.p_)->r_info + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(reloc.p_)->r_info + 4)" ( (binary_expression "(int)&(reloc.p_)->r_info + 4" (cast_expression "(int)&(reloc.p_)->r_info" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(reloc.p_)->r_info" & (field_expression "(reloc.p_)->r_info" (parenthesized_expression "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) )) -> field_identifier))) + number_literal) ))))) ;) if (parenthesized_expression "(uVar35 < param_10)" ( (binary_expression "uVar35 < param_10" identifier < identifier) )) { (if_statement "if (plocal_symbols == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x4d,(char *)(unaff_EDI + 0x268377));\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                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x4d,(char *)(unaff_EDI + 0x268377));\n        }" { comment (labeled_statement "gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x4d,(char *)(unaff_EDI + 0x268377));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x4d,(char *)(unaff_EDI + 0x268377));" (call_expression "do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x4d,(char *)(unaff_EDI + 0x268377))" identifier (argument_list "((char *)(unaff_EDI + 0x2693fc),0x4d,(char *)(unaff_EDI + 0x268377))" ( (cast_expression "(char *)(unaff_EDI + 0x2693fc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2693fc)" ( (binary_expression "unaff_EDI + 0x2693fc" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x268377)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x268377)" ( (binary_expression "unaff_EDI + 0x268377" identifier + number_literal) ))) ))) ;)) })) (expression_statement "lsym.p_ = (Sym_data<64> *)(plocal_symbols + uVar35 * 0x18);" (assignment_expression "lsym.p_ = (Sym_data<64> *)(plocal_symbols + uVar35 * 0x18)" (field_expression "lsym.p_" identifier . field_identifier) = (call_expression "(Sym_data<64> *)(plocal_symbols + uVar35 * 0x18)" (parenthesized_expression "(Sym_data<64> *)" ( (binary_expression "Sym_data<64> *" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*" * identifier)) )) (argument_list "(plocal_symbols + uVar35 * 0x18)" ( (binary_expression "plocal_symbols + uVar35 * 0x18" identifier + (binary_expression "uVar35 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "uVar18 = (uint)(lsym.p_)->st_shndx;" (assignment_expression "uVar18 = (uint)(lsym.p_)->st_shndx" identifier = (field_expression "(uint)(lsym.p_)->st_shndx" (call_expression "(uint)(lsym.p_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lsym.p_)" ( (field_expression "lsym.p_" identifier . field_identifier) ))) -> field_identifier)) ;) (if_statement "if (uVar18 < 0xff00) {\nLAB_0008de38:\n          if (uVar18 == 0) goto LAB_0008dd74;\n          ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((uint)((int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar1 >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b));\n          }\n          if (ppOVar1[uVar18] != (Output_section *)0x0) goto LAB_0008dd74;\n          bVar16 = gold::Symbol_table::is_section_folded(symtab,(Relobj *)object,uVar18);\n          in_stack_fffffda0 = (Symbol *)(uint)!bVar16;\n        }\n        else {\n          if (uVar18 == 0xffff) {\n            this_01 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = (Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object);\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            uVar18 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)object,uVar35);\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          in_stack_fffffda0 = (Symbol *)0x0;\n        }" if (parenthesized_expression "(uVar18 < 0xff00)" ( (binary_expression "uVar18 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_0008de38:\n          if (uVar18 == 0) goto LAB_0008dd74;\n          ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((uint)((int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar1 >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b));\n          }\n          if (ppOVar1[uVar18] != (Output_section *)0x0) goto LAB_0008dd74;\n          bVar16 = gold::Symbol_table::is_section_folded(symtab,(Relobj *)object,uVar18);\n          in_stack_fffffda0 = (Symbol *)(uint)!bVar16;\n        }" { (labeled_statement "LAB_0008de38:\n          if (uVar18 == 0) goto LAB_0008dd74;" statement_identifier : (if_statement "if (uVar18 == 0) goto LAB_0008dd74;" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008dd74;" goto statement_identifier ;))) (expression_statement "ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;" (field_expression "ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start" (field_expression "ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl" (binary_expression "ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold" identifier = (binary_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar1 >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b));\n          }" if (parenthesized_expression "((uint)((int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar1 >> 2) <= uVar18)" ( (binary_expression "(uint)((int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar1 >> 2) <= uVar18" (call_expression "(uint)((int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar1 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar1 >> 2)" ( (binary_expression "(int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar1 >> 2" (binary_expression "(int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar1" (field_expression "(int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish" (field_expression "(int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl" (binary_expression "(int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std" (binary_expression "(int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold" (cast_expression "(int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                          super__Vector_base" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppOVar1" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b));\n          }" { comment (labeled_statement "gold::do_gold_unreachable\n                      ((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      ((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b));" (call_expression "do_gold_unreachable\n                      ((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b))" identifier (argument_list "((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b))" ( (cast_expression "(char *)(unaff_EDI + 0x26922f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x26922f)" ( (binary_expression "unaff_EDI + 0x26922f" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x26868b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x26868b)" ( (binary_expression "unaff_EDI + 0x26868b" identifier + number_literal) ))) ))) ;)) })) (if_statement "if (ppOVar1[uVar18] != (Output_section *)0x0) goto LAB_0008dd74;" if (parenthesized_expression "(ppOVar1[uVar18] != (Output_section *)0x0)" ( (binary_expression "ppOVar1[uVar18] != (Output_section *)0x0" (subscript_expression "ppOVar1[uVar18]" identifier [ identifier ]) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008dd74;" goto statement_identifier ;)) (ERROR "bVar16 = gold::" (assignment_expression "bVar16 = gold" identifier = identifier) : :) (labeled_statement "Symbol_table::is_section_folded(symtab,(Relobj *)object,uVar18);" statement_identifier : (ERROR ":" :) (expression_statement "is_section_folded(symtab,(Relobj *)object,uVar18);" (call_expression "is_section_folded(symtab,(Relobj *)object,uVar18)" identifier (argument_list "(symtab,(Relobj *)object,uVar18)" ( identifier , (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;)) (expression_statement "in_stack_fffffda0 = (Symbol *)(uint)!bVar16;" (assignment_expression "in_stack_fffffda0 = (Symbol *)(uint)!bVar16" identifier = (cast_expression "(Symbol *)(uint)!bVar16" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)!bVar16" ( (type_descriptor "uint" type_identifier) ) (unary_expression "!bVar16" ! identifier)))) ;) }) (else_clause "else {\n          if (uVar18 == 0xffff) {\n            this_01 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = (Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object);\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            uVar18 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)object,uVar35);\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          in_stack_fffffda0 = (Symbol *)0x0;\n        }" else (compound_statement "{\n          if (uVar18 == 0xffff) {\n            this_01 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = (Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object);\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            uVar18 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)object,uVar35);\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          in_stack_fffffda0 = (Symbol *)0x0;\n        }" { (if_statement "if (uVar18 == 0xffff) {\n            this_01 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = (Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object);\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            uVar18 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)object,uVar35);\n            goto LAB_0008de38;\n          }" if (parenthesized_expression "(uVar18 == 0xffff)" ( (binary_expression "uVar18 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            this_01 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = (Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object);\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */\n            uVar18 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)object,uVar35);\n            goto LAB_0008de38;\n          }" { (expression_statement "this_01 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;" (assignment_expression "this_01 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" identifier = (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (this_01 == (Xindex *)0x0) {\n              this_01 = (Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object);\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }" if (parenthesized_expression "(this_01 == (Xindex *)0x0)" ( (binary_expression "this_01 == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              this_01 = (Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object);\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }" { (expression_statement "this_01 = (Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object);" (assignment_expression "this_01 = (Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object)" identifier = (cast_expression "(Xindex *)\n                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object)" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(object)" (parenthesized_expression "(*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])" ( (pointer_expression "*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b]" * (subscript_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b]" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                          _vptr_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(object)" ( identifier ))))) ;) (expression_statement "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;" (assignment_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) })) comment (ERROR "uVar18 = gold::" (assignment_expression "uVar18 = gold" identifier = identifier) : :) (labeled_statement "Xindex::sym_xindex_to_shndx(this_01,(Object *)object,uVar35);" statement_identifier : (ERROR ":" :) (expression_statement "sym_xindex_to_shndx(this_01,(Object *)object,uVar35);" (call_expression "sym_xindex_to_shndx(this_01,(Object *)object,uVar35)" identifier (argument_list "(this_01,(Object *)object,uVar35)" ( identifier , (cast_expression "(Object *)object" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;)) (goto_statement "goto LAB_0008de38;" goto statement_identifier ;) })) (labeled_statement "LAB_0008dd74:\n          in_stack_fffffda0 = (Symbol *)0x0;" statement_identifier : (expression_statement "in_stack_fffffda0 = (Symbol *)0x0;" (assignment_expression "in_stack_fffffda0 = (Symbol *)0x0" identifier = (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (expression_statement "in_stack_fffffd9c = (Layout *)&lsym;" (assignment_expression "in_stack_fffffd9c = (Layout *)&lsym" identifier = (cast_expression "(Layout *)&lsym" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&lsym" & identifier))) ;) comment identifier : (ERROR ":" :) identifier ( (cast_expression "(Scan *)this" ( (type_descriptor "Scan *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Symbol_table *)object" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Layout *)data_shndx" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , ( (binary_expression "Target_powerpc<64" identifier < number_literal) , (binary_expression "_false> *)output_section" identifier > (pointer_expression "*)output_section" * (ERROR ")" )) identifier)) , ( (comma_expression "Sized_relobj_file<64,_false> *)&reloc,(uint)data_shndx_00,\n                    (Output_section *)in_stack_fffffd9c,(Rela<64,_false> *)in_stack_fffffda0,\n                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0));\n        in_stack_fffffd98 = data_shndx_00;\n      }\n      else {\n        if (uVar35 < object->local_symbol_count_) {\nLAB_00090230:\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));\n        }\n        uVar35 = uVar35 - object->local_symbol_count_;\n        ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if ((uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2) <= uVar35) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));\n        }\n        pLVar19 = (Layout *)ppSVar2[uVar35];\n        if (pLVar19 == (Layout *)0x0) goto LAB_00090230;\n        if (((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000) == 0) {\n          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;\nLAB_0008e048:\n          if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }\n          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n          pLVar32 = pLVar19;\n          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))\n          goto LAB_0008dfbd;\n        }\n        else {\n          in_stack_fffffd98 = pLVar19;\n          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);\n          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;\nLAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;\nLAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;\n          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }\n          if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;\n          if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }\n          gold::Symbol::demangled_name((Symbol *)this_00);\n          in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);\n          in_stack_fffffd9c = data_shndx_00;\n          in_stack_fffffda0 = local_154;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          gold::gold_error(pcVar22);\n          if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }\n          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }\n          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }\nLAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);\n          if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }\n        }\n      }\n_L18143:\n      local_1ec = local_1ec + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_1ec)" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (comma_expression "_false> *)&reloc,(uint)data_shndx_00,\n                    (Output_section *)in_stack_fffffd9c,(Rela<64,_false> *)in_stack_fffffda0,\n                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0));\n        in_stack_fffffd98 = data_shndx_00;\n      }\n      else {\n        if (uVar35 < object->local_symbol_count_) {\nLAB_00090230:\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));\n        }\n        uVar35 = uVar35 - object->local_symbol_count_;\n        ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if ((uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2) <= uVar35) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));\n        }\n        pLVar19 = (Layout *)ppSVar2[uVar35];\n        if (pLVar19 == (Layout *)0x0) goto LAB_00090230;\n        if (((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000) == 0) {\n          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;\nLAB_0008e048:\n          if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }\n          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n          pLVar32 = pLVar19;\n          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))\n          goto LAB_0008dfbd;\n        }\n        else {\n          in_stack_fffffd98 = pLVar19;\n          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);\n          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;\nLAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;\nLAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;\n          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }\n          if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;\n          if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }\n          gold::Symbol::demangled_name((Symbol *)this_00);\n          in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);\n          in_stack_fffffd9c = data_shndx_00;\n          in_stack_fffffda0 = local_154;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          gold::gold_error(pcVar22);\n          if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }\n          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }\n          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }\nLAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);\n          if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }\n        }\n      }\n_L18143:\n      local_1ec = local_1ec + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_1ec)" (binary_expression "_false> *)&reloc" identifier > (pointer_expression "*)&reloc" * (ERROR ")" )) (pointer_expression "&reloc" & identifier))) , (comma_expression "(uint)data_shndx_00,\n                    (Output_section *)in_stack_fffffd9c,(Rela<64,_false> *)in_stack_fffffda0,\n                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0));\n        in_stack_fffffd98 = data_shndx_00;\n      }\n      else {\n        if (uVar35 < object->local_symbol_count_) {\nLAB_00090230:\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));\n        }\n        uVar35 = uVar35 - object->local_symbol_count_;\n        ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if ((uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2) <= uVar35) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));\n        }\n        pLVar19 = (Layout *)ppSVar2[uVar35];\n        if (pLVar19 == (Layout *)0x0) goto LAB_00090230;\n        if (((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000) == 0) {\n          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;\nLAB_0008e048:\n          if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }\n          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n          pLVar32 = pLVar19;\n          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))\n          goto LAB_0008dfbd;\n        }\n        else {\n          in_stack_fffffd98 = pLVar19;\n          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);\n          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;\nLAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;\nLAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;\n          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }\n          if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;\n          if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }\n          gold::Symbol::demangled_name((Symbol *)this_00);\n          in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);\n          in_stack_fffffd9c = data_shndx_00;\n          in_stack_fffffda0 = local_154;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          gold::gold_error(pcVar22);\n          if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }\n          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }\n          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }\nLAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);\n          if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }\n        }\n      }\n_L18143:\n      local_1ec = local_1ec + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_1ec)" (cast_expression "(uint)data_shndx_00" ( (type_descriptor "uint" type_identifier) ) identifier) , (comma_expression "(Output_section *)in_stack_fffffd9c,(Rela<64,_false> *)in_stack_fffffda0,\n                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0));\n        in_stack_fffffd98 = data_shndx_00;\n      }\n      else {\n        if (uVar35 < object->local_symbol_count_) {\nLAB_00090230:\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));\n        }\n        uVar35 = uVar35 - object->local_symbol_count_;\n        ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if ((uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2) <= uVar35) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));\n        }\n        pLVar19 = (Layout *)ppSVar2[uVar35];\n        if (pLVar19 == (Layout *)0x0) goto LAB_00090230;\n        if (((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000) == 0) {\n          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;\nLAB_0008e048:\n          if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }\n          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n          pLVar32 = pLVar19;\n          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))\n          goto LAB_0008dfbd;\n        }\n        else {\n          in_stack_fffffd98 = pLVar19;\n          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);\n          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;\nLAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;\nLAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;\n          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }\n          if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;\n          if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }\n          gold::Symbol::demangled_name((Symbol *)this_00);\n          in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);\n          in_stack_fffffd9c = data_shndx_00;\n          in_stack_fffffda0 = local_154;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          gold::gold_error(pcVar22);\n          if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }\n          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }\n          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }\nLAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);\n          if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }\n        }\n      }\n_L18143:\n      local_1ec = local_1ec + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_1ec)" (cast_expression "(Output_section *)in_stack_fffffd9c" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (parenthesized_expression "(Rela<64,_false> *)in_stack_fffffda0,\n                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0));\n        in_stack_fffffd98 = data_shndx_00;\n      }\n      else {\n        if (uVar35 < object->local_symbol_count_) {\nLAB_00090230:\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));\n        }\n        uVar35 = uVar35 - object->local_symbol_count_;\n        ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if ((uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2) <= uVar35) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));\n        }\n        pLVar19 = (Layout *)ppSVar2[uVar35];\n        if (pLVar19 == (Layout *)0x0) goto LAB_00090230;\n        if (((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000) == 0) {\n          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;\nLAB_0008e048:\n          if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }\n          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n          pLVar32 = pLVar19;\n          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))\n          goto LAB_0008dfbd;\n        }\n        else {\n          in_stack_fffffd98 = pLVar19;\n          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);\n          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;\nLAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;\nLAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;\n          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }\n          if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;\n          if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }\n          gold::Symbol::demangled_name((Symbol *)this_00);\n          in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);\n          in_stack_fffffd9c = data_shndx_00;\n          in_stack_fffffda0 = local_154;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          gold::gold_error(pcVar22);\n          if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }\n          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }\n          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }\nLAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);\n          if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }\n        }\n      }\n_L18143:\n      local_1ec = local_1ec + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_1ec)" ( (ERROR "Rela<64,_false> *)in_stack_fffffda0,\n                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0));\n        in_stack_fffffd98 = data_shndx_00;\n      }\n      else" (comma_expression "Rela<64,_false> *)in_stack_fffffda0,\n                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0))" (binary_expression "Rela<64" identifier < number_literal) , (comma_expression "_false> *)in_stack_fffffda0,\n                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0))" (binary_expression "_false> *)in_stack_fffffda0" identifier > (pointer_expression "*)in_stack_fffffda0" * (ERROR ")" )) identifier)) , (comma_expression "(uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0))" (cast_expression "(uint)in_stack_fffffda4" ( (type_descriptor "uint" type_identifier) ) identifier) , (parenthesized_expression "(Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0))" ( (comma_expression "Sym<64,_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0)" (binary_expression "Sym<64" identifier < number_literal) , (comma_expression "_false> *)in_stack_fffffda8,\n                    SUB41(in_stack_fffffdac,0)" (binary_expression "_false> *)in_stack_fffffda8" identifier > (pointer_expression "*)in_stack_fffffda8" * (ERROR ")" )) identifier)) , (call_expression "SUB41(in_stack_fffffdac,0)" identifier (argument_list "(in_stack_fffffdac,0)" ( identifier , number_literal ))))) ))))) ; (assignment_expression "in_stack_fffffd98 = data_shndx_00" identifier = identifier) ; } else) (compound_statement "{\n        if (uVar35 < object->local_symbol_count_) {\nLAB_00090230:\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));\n        }\n        uVar35 = uVar35 - object->local_symbol_count_;\n        ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if ((uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2) <= uVar35) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));\n        }\n        pLVar19 = (Layout *)ppSVar2[uVar35];\n        if (pLVar19 == (Layout *)0x0) goto LAB_00090230;\n        if (((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000) == 0) {\n          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;\nLAB_0008e048:\n          if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }\n          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n          pLVar32 = pLVar19;\n          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))\n          goto LAB_0008dfbd;\n        }\n        else {\n          in_stack_fffffd98 = pLVar19;\n          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);\n          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;\nLAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;\nLAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;\n          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }\n          if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;\n          if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }\n          gold::Symbol::demangled_name((Symbol *)this_00);\n          in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);\n          in_stack_fffffd9c = data_shndx_00;\n          in_stack_fffffda0 = local_154;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          gold::gold_error(pcVar22);\n          if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }\n          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }\n          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }\nLAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);\n          if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }\n        }\n      }" { (if_statement "if (uVar35 < object->local_symbol_count_) {\nLAB_00090230:\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));\n        }" if (parenthesized_expression "(uVar35 < object->local_symbol_count_)" ( (binary_expression "uVar35 < object->local_symbol_count_" identifier < (field_expression "object->local_symbol_count_" identifier -> field_identifier)) )) (compound_statement "{\nLAB_00090230:\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));\n        }" { (labeled_statement "LAB_00090230:\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));" statement_identifier : comment (labeled_statement "gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));" (call_expression "do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377))" identifier (argument_list "((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377))" ( (cast_expression "(char *)(unaff_EDI + 0x2693fc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2693fc)" ( (binary_expression "unaff_EDI + 0x2693fc" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x268377)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x268377)" ( (binary_expression "unaff_EDI + 0x268377" identifier + number_literal) ))) ))) ;))) })) (expression_statement "uVar35 = uVar35 - object->local_symbol_count_;" (assignment_expression "uVar35 = uVar35 - object->local_symbol_count_" identifier = (binary_expression "uVar35 - object->local_symbol_count_" identifier - (field_expression "object->local_symbol_count_" identifier -> field_identifier))) ;) (expression_statement "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;" (field_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start" (field_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar2 = (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) ;) (if_statement "if ((uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2) <= uVar35) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));\n        }" if (parenthesized_expression "((uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2) <= uVar35)" ( (binary_expression "(uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2) <= uVar35" (call_expression "(uint)((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2)" ( (binary_expression "(int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2 >> 2" (binary_expression "(int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish - (int)ppSVar2" (field_expression "(int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                        _M_finish" (field_expression "(int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "(int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "(int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "(int)(object->symbols_).\n                        super__Vector_base<gold::Symbol*,_std" (binary_expression "(int)(object->symbols_).\n                        super__Vector_base<gold" (cast_expression "(int)(object->symbols_).\n                        super__Vector_base" ( (type_descriptor "int" primitive_type) ) (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) - (cast_expression "(int)ppSVar2" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));\n        }" { comment (labeled_statement "gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));" (call_expression "do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b))" identifier (argument_list "((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b))" ( (cast_expression "(char *)(unaff_EDI + 0x26922f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x26922f)" ( (binary_expression "unaff_EDI + 0x26922f" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x26870b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x26870b)" ( (binary_expression "unaff_EDI + 0x26870b" identifier + number_literal) ))) ))) ;)) })) (expression_statement "pLVar19 = (Layout *)ppSVar2[uVar35];" (assignment_expression "pLVar19 = (Layout *)ppSVar2[uVar35]" identifier = (cast_expression "(Layout *)ppSVar2[uVar35]" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppSVar2[uVar35]" identifier [ identifier ]))) ;) (if_statement "if (pLVar19 == (Layout *)0x0) goto LAB_00090230;" if (parenthesized_expression "(pLVar19 == (Layout *)0x0)" ( (binary_expression "pLVar19 == (Layout *)0x0" identifier == (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00090230;" goto statement_identifier ;)) (if_statement "if (((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000) == 0) {\n          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;\nLAB_0008e048:\n          if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }\n          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n          pLVar32 = pLVar19;\n          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))\n          goto LAB_0008dfbd;\n        }\n        else {\n          in_stack_fffffd98 = pLVar19;\n          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);\n          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;\nLAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;\nLAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;\n          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }\n          if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;\n          if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }\n          gold::Symbol::demangled_name((Symbol *)this_00);\n          in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);\n          in_stack_fffffd9c = data_shndx_00;\n          in_stack_fffffda0 = local_154;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          gold::gold_error(pcVar22);\n          if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }\n          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }\n          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }\nLAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);\n          if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }\n        }" if (parenthesized_expression "(((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000) == 0)" ( (binary_expression "((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000) == 0" (parenthesized_expression "((uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000)" ( (ERROR "(uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::" (comma_expression "(uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int,_std" (binary_expression "(uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std::vector<int" (binary_expression "(uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base<std" (field_expression "(uint)(pLVar19->namepool_).key_to_offset_.chunks_.\n                   super__Vector_base" (field_expression "(uint)(pLVar19->namepool_).key_to_offset_.chunks_" (field_expression "(uint)(pLVar19->namepool_).key_to_offset_" (call_expression "(uint)(pLVar19->namepool_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pLVar19->namepool_)" ( (field_expression "pLVar19->namepool_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<int>_>,_std" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<int,_std" (binary_expression "vector<int" identifier < identifier) , identifier) : :) (binary_expression "allocator<int>_>_>_>\n                   ._M_impl._M_finish & 0x100000" (field_expression "allocator<int>_>_>_>\n                   ._M_impl._M_finish" (field_expression "allocator<int>_>_>_>\n                   ._M_impl" (binary_expression "allocator<int>_>_>_" (binary_expression "allocator<int>_>_" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;\nLAB_0008e048:\n          if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }\n          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n          pLVar32 = pLVar19;\n          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))\n          goto LAB_0008dfbd;\n        }" { (if_statement "if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;" if (parenthesized_expression "(((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U)))))" ( (binary_expression "((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )) && ((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))" (parenthesized_expression "((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              ))" ( (binary_expression "(((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&\n              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )" (parenthesized_expression "(((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0)" ( (binary_expression "((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7) != 0" (parenthesized_expression "((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7)" ( (binary_expression "(uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U) & 0xfffffff7" (call_expression "(uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U)" ( (binary_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left + 2U" (cast_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left" & (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header._M_left" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                              _M_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl" (field_expression "data_shndx_00[-1].gnu_properties_._M_t" (field_expression "data_shndx_00[-1].gnu_properties_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)\n              )" ( (binary_expression "(undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)" (cast_expression "(undefined1 *)0x2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)" ( (binary_expression "(int)&data_shndx_00[-1].free_list_.min_hole_ + 3U" (cast_expression "(int)&data_shndx_00[-1].free_list_.min_hole_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].free_list_.min_hole_" & (field_expression "data_shndx_00[-1].free_list_.min_hole_" (field_expression "data_shndx_00[-1].free_list_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) ))) )) && (parenthesized_expression "((data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))))" ( (parenthesized_expression "(data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U)))" ( (binary_expression "data_shndx_00 != (Layout *)0x3c &&\n                     ((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))" (binary_expression "data_shndx_00 != (Layout *)0x3c" identifier != (cast_expression "(Layout *)0x3c" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U))" ( (binary_expression "(undefined1 *)0x1 <\n                      (undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U)" (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)\n                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U)" ( (binary_expression "(int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent + 1U" (cast_expression "(int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent" & (field_expression "data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header._M_parent" (field_expression "data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header._M_header" (field_expression "data_shndx_00[-1].section_segment_map_._M_t._M_impl.\n                             super__Rb_tree_header" (field_expression "data_shndx_00[-1].section_segment_map_._M_t._M_impl" (field_expression "data_shndx_00[-1].section_segment_map_._M_t" (field_expression "data_shndx_00[-1].section_segment_map_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) ))) )) ))) )) (goto_statement "goto LAB_0008df60;" goto statement_identifier ;)) (labeled_statement "LAB_0008e048:\n          if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }" statement_identifier : (if_statement "if ((Layout *)this->tls_get_addr_ != pLVar19) {\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }" if (parenthesized_expression "((Layout *)this->tls_get_addr_ != pLVar19)" ( (binary_expression "(Layout *)this->tls_get_addr_ != pLVar19" (cast_expression "(Layout *)this->tls_get_addr_" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->tls_get_addr_" identifier -> field_identifier)) != identifier) )) (compound_statement "{\n            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;\n            goto LAB_0008e080;\n          }" { (if_statement "if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;" if (parenthesized_expression "((Layout *)this->tls_get_addr_opt_ != pLVar19)" ( (binary_expression "(Layout *)this->tls_get_addr_opt_ != pLVar19" (cast_expression "(Layout *)this->tls_get_addr_opt_" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->tls_get_addr_opt_" identifier -> field_identifier)) != identifier) )) (goto_statement "goto LAB_0008df60;" goto statement_identifier ;)) (expression_statement "scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;" (assignment_expression "scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED" (field_expression "scan.super_Track_tls.tls_get_addr_state_" (field_expression "scan.super_Track_tls" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;" if (parenthesized_expression "((TVar15 != EXPECTED) && (TVar15 == SKIP))" ( (binary_expression "(TVar15 != EXPECTED) && (TVar15 == SKIP)" (parenthesized_expression "(TVar15 != EXPECTED)" ( (binary_expression "TVar15 != EXPECTED" identifier != identifier) )) && (parenthesized_expression "(TVar15 == SKIP)" ( (binary_expression "TVar15 == SKIP" identifier == identifier) ))) )) (goto_statement "goto _L18143;" goto statement_identifier ;)) (goto_statement "goto LAB_0008e080;" goto statement_identifier ;) }))) (expression_statement "scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;" (assignment_expression "scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED" (field_expression "scan.super_Track_tls.tls_get_addr_state_" (field_expression "scan.super_Track_tls" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pLVar32 = pLVar19;" (assignment_expression "pLVar32 = pLVar19" identifier = identifier) ;) (if_statement "if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))\n          goto LAB_0008dfbd;" if (parenthesized_expression "((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))" ( (binary_expression "(TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP)" (parenthesized_expression "(TVar15 == EXPECTED)" ( (binary_expression "TVar15 == EXPECTED" identifier == identifier) )) || (parenthesized_expression "(pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP)" ( (comma_expression "pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP" (assignment_expression "pLVar32 = (Layout *)this->tls_get_addr_" identifier = (cast_expression "(Layout *)this->tls_get_addr_" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->tls_get_addr_" identifier -> field_identifier))) , (binary_expression "TVar15 != SKIP" identifier != identifier)) ))) )) (goto_statement "goto LAB_0008dfbd;" goto statement_identifier ;)) }) (else_clause "else {\n          in_stack_fffffd98 = pLVar19;\n          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);\n          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;\nLAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;\nLAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;\n          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }\n          if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;\n          if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }\n          gold::Symbol::demangled_name((Symbol *)this_00);\n          in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);\n          in_stack_fffffd9c = data_shndx_00;\n          in_stack_fffffda0 = local_154;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          gold::gold_error(pcVar22);\n          if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }\n          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }\n          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }\nLAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);\n          if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }\n        }" else (compound_statement "{\n          in_stack_fffffd98 = pLVar19;\n          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);\n          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;\nLAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;\nLAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;\n          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }\n          if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;\n          if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }\n          gold::Symbol::demangled_name((Symbol *)this_00);\n          in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);\n          in_stack_fffffd9c = data_shndx_00;\n          in_stack_fffffda0 = local_154;\n                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */\n          gold::gold_error(pcVar22);\n          if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }\n          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }\n          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }\nLAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);\n          if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }\n        }" { (expression_statement "in_stack_fffffd98 = pLVar19;" (assignment_expression "in_stack_fffffd98 = pLVar19" identifier = identifier) ;) (ERROR "pLVar19 = (Layout *)gold::" (assignment_expression "pLVar19 = (Layout *)gold" identifier = (cast_expression "(Layout *)gold" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);" statement_identifier : (ERROR ":" :) (expression_statement "resolve_forwards(symtab,(Symbol *)pLVar19);" (call_expression "resolve_forwards(symtab,(Symbol *)pLVar19)" identifier (argument_list "(symtab,(Symbol *)pLVar19)" ( identifier , (cast_expression "(Symbol *)pLVar19" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (if_statement "if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))\n          goto LAB_0008e048;" if (parenthesized_expression "(((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))" ( (binary_expression "((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0)" (parenthesized_expression "((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2))" ( (binary_expression "(((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||\n              ((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)" (parenthesized_expression "(((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c))" ( (binary_expression "((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)" (parenthesized_expression "((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3))" ( (binary_expression "(((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||\n                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)" (parenthesized_expression "(((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0)" ( (binary_expression "((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7) == 0" (parenthesized_expression "((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7)" ( (binary_expression "(uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U) & 0xfffffff7" (call_expression "(uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U)" ( (binary_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left + 2U" (cast_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left" & (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header._M_left" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header\n                                ._M_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl" (field_expression "data_shndx_00[-1].gnu_properties_._M_t" (field_expression "data_shndx_00[-1].gnu_properties_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))) & number_literal) )) == number_literal) )) || (parenthesized_expression "((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3)" ( (binary_expression "(undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <\n                 (undefined1 *)0x3" (cast_expression "(undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)" ( (binary_expression "(int)&data_shndx_00[-1].free_list_.min_hole_ + 3U" (cast_expression "(int)&data_shndx_00[-1].free_list_.min_hole_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].free_list_.min_hole_" & (field_expression "data_shndx_00[-1].free_list_.min_hole_" (field_expression "data_shndx_00[-1].free_list_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) ))) < (cast_expression "(undefined1 *)0x3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(data_shndx_00 == (Layout *)0x3c)" ( (binary_expression "data_shndx_00 == (Layout *)0x3c" identifier == (cast_expression "(Layout *)0x3c" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2)" ( (binary_expression "(undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U) < (undefined1 *)0x2" (cast_expression "(undefined1 *)\n               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U)" ( (binary_expression "(int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent + 1U" (cast_expression "(int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent" & (field_expression "data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header._M_parent" (field_expression "data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.\n                      _M_header" (field_expression "data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header" (field_expression "data_shndx_00[-1].section_segment_map_._M_t._M_impl" (field_expression "data_shndx_00[-1].section_segment_map_._M_t" (field_expression "data_shndx_00[-1].section_segment_map_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))) < (cast_expression "(undefined1 *)0x2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(pLVar19 != (Layout *)0x0)" ( (binary_expression "pLVar19 != (Layout *)0x0" identifier != (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0008e048;" goto statement_identifier ;)) (labeled_statement "LAB_0008df60:\n          pLVar32 = (Layout *)this->tls_get_addr_;" statement_identifier : (expression_statement "pLVar32 = (Layout *)this->tls_get_addr_;" (assignment_expression "pLVar32 = (Layout *)this->tls_get_addr_" identifier = (cast_expression "(Layout *)this->tls_get_addr_" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->tls_get_addr_" identifier -> field_identifier))) ;)) (labeled_statement "LAB_0008dfbd:\n          this_00 = (Layout *)this->tls_get_addr_opt_;" statement_identifier : (expression_statement "this_00 = (Layout *)this->tls_get_addr_opt_;" (assignment_expression "this_00 = (Layout *)this->tls_get_addr_opt_" identifier = (cast_expression "(Layout *)this->tls_get_addr_opt_" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->tls_get_addr_opt_" identifier -> field_identifier))) ;)) (if_statement "if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {\nLAB_0008e080:\n            this_00 = pLVar19;\n          }" if (parenthesized_expression "((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19))" ( (binary_expression "(this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)" (parenthesized_expression "(this_00 == (Layout *)0x0)" ( (binary_expression "this_00 == (Layout *)0x0" identifier == (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pLVar32 != pLVar19)" ( (binary_expression "pLVar32 != pLVar19" identifier != identifier) ))) )) (compound_statement "{\nLAB_0008e080:\n            this_00 = pLVar19;\n          }" { (labeled_statement "LAB_0008e080:\n            this_00 = pLVar19;" statement_identifier : (expression_statement "this_00 = pLVar19;" (assignment_expression "this_00 = pLVar19" identifier = identifier) ;)) })) (if_statement "if (data_shndx_00 == (Layout *)0x6b) {\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }\n          else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }" if (parenthesized_expression "(data_shndx_00 == (Layout *)0x6b)" ( (binary_expression "data_shndx_00 == (Layout *)0x6b" identifier == (cast_expression "(Layout *)0x6b" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            gold::Symbol::final_value_is_known((Symbol *)this_00);\n            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }\nLAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;\n            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }\n          }" { (labeled_statement "gold::Symbol::final_value_is_known((Symbol *)this_00);" statement_identifier : (ERROR ":" :) (labeled_statement "Symbol::final_value_is_known((Symbol *)this_00);" statement_identifier : (ERROR ":" :) (expression_statement "final_value_is_known((Symbol *)this_00);" (call_expression "final_value_is_known((Symbol *)this_00)" identifier (argument_list "((Symbol *)this_00)" ( (cast_expression "(Symbol *)this_00" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) (expression_statement "iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n            }" { comment (expression_statement "Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);" (comma_expression "Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4)" (binary_expression "Stub_table<64" identifier < number_literal) , (binary_expression "_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4)" identifier > (ERROR "::" : :) (call_expression "stub_align((Stub_table<64,_false> *)in_stack_fffffda4)" identifier (argument_list "((Stub_table<64,_false> *)in_stack_fffffda4)" ( (parenthesized_expression "(Stub_table<64,_false> *)in_stack_fffffda4)" ( (comma_expression "Stub_table<64,_false> *)in_stack_fffffda4" (binary_expression "Stub_table<64" identifier < number_literal) , (binary_expression "_false> *)in_stack_fffffda4" identifier > (pointer_expression "*)in_stack_fffffda4" * (ERROR ")" )) identifier))) )) ))))) ;) })) (labeled_statement "LAB_0008e0c3:\n            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;" statement_identifier : (expression_statement "scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;" (assignment_expression "scan.super_Track_tls.tls_get_addr_state_ = EXPECTED" (field_expression "scan.super_Track_tls.tls_get_addr_state_" (field_expression "scan.super_Track_tls" identifier . field_identifier) . field_identifier) = identifier) ;)) (if_statement "if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }" if (parenthesized_expression "((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0'))" ( (binary_expression "(*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')" (parenthesized_expression "(*(char *)(iVar20 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar20 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar20 + 0x1a25)" * (cast_expression "(char *)(iVar20 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1a25)" ( (binary_expression "iVar20 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar20 + 0x3ef5) != '\0')" ( (binary_expression "*(char *)(iVar20 + 0x3ef5) != '\0'" (pointer_expression "*(char *)(iVar20 + 0x3ef5)" * (cast_expression "(char *)(iVar20 + 0x3ef5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3ef5)" ( (binary_expression "iVar20 + 0x3ef5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              scan.super_Track_tls.tls_get_addr_state_ = SKIP;\n            }" { (expression_statement "scan.super_Track_tls.tls_get_addr_state_ = SKIP;" (assignment_expression "scan.super_Track_tls.tls_get_addr_state_ = SKIP" (field_expression "scan.super_Track_tls.tls_get_addr_state_" (field_expression "scan.super_Track_tls" identifier . field_identifier) . field_identifier) = identifier) ;) })) }) (else_clause "else {\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }" else (compound_statement "{\n            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;\n            if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }\n          }" { (expression_statement "scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;" (assignment_expression "scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED" (field_expression "scan.super_Track_tls.tls_get_addr_state_" (field_expression "scan.super_Track_tls" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (data_shndx_00 == (Layout *)0x6c) {\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }" if (parenthesized_expression "(data_shndx_00 == (Layout *)0x6c)" ( (binary_expression "data_shndx_00 == (Layout *)0x6c" identifier == (cast_expression "(Layout *)0x6c" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }\n              goto LAB_0008e0c3;\n            }" { (expression_statement "iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);\n              }" { comment (expression_statement "Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);" (comma_expression "Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4)" (binary_expression "Stub_table<64" identifier < number_literal) , (binary_expression "_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4)" identifier > (ERROR "::" : :) (call_expression "stub_align((Stub_table<64,_false> *)in_stack_fffffda4)" identifier (argument_list "((Stub_table<64,_false> *)in_stack_fffffda4)" ( (parenthesized_expression "(Stub_table<64,_false> *)in_stack_fffffda4)" ( (comma_expression "Stub_table<64,_false> *)in_stack_fffffda4" (binary_expression "Stub_table<64" identifier < number_literal) , (binary_expression "_false> *)in_stack_fffffda4" identifier > (pointer_expression "*)in_stack_fffffda4" * (ERROR ")" )) identifier))) )) ))))) ;) })) (goto_statement "goto LAB_0008e0c3;" goto statement_identifier ;) })) }))) (ERROR "bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::" (comma_expression "bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int,_std" (binary_expression "bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std::vector<int" (assignment_expression "bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std" identifier = (binary_expression "*(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base<std" (pointer_expression "*(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base" * (cast_expression "(byte *)&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base" & (field_expression "(this_00->namepool_).key_to_offset_.chunks_.\n                             super__Vector_base" (field_expression "(this_00->namepool_).key_to_offset_.chunks_" (field_expression "(this_00->namepool_).key_to_offset_" (parenthesized_expression "(this_00->namepool_)" ( (field_expression "this_00->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)))) < identifier)) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<int>_>,_std" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<int,_std" (binary_expression "vector<int" identifier < identifier) , identifier) : :) (expression_statement "allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf;" (binary_expression "allocator<int>_>_>_>\n                             ._M_impl._M_finish & 0xf" (field_expression "allocator<int>_>_>_>\n                             ._M_impl._M_finish" (field_expression "allocator<int>_>_>_>\n                             ._M_impl" (binary_expression "allocator<int>_>_>_" (binary_expression "allocator<int>_>_" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) ;) (if_statement "if (bVar17 == 10) {\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }\n          else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }" if (parenthesized_expression "(bVar17 == 10)" ( (binary_expression "bVar17 == 10" identifier == number_literal) )) (compound_statement "{\n            bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));\n            if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }\n          }" { (ERROR "bVar16 = Scan::reloc_needs_plt_for_ifunc\n                               ((Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));" (assignment_expression "bVar16 = Scan" identifier = identifier) : : identifier ( ( (comma_expression "Target_powerpc<64,_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0))" (binary_expression "Target_powerpc<64" identifier < number_literal) , (comma_expression "_false> *)0x1,\n                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0))" (binary_expression "_false> *)0x1" identifier > (pointer_expression "*)0x1" * (ERROR ")" )) number_literal)) , (parenthesized_expression "(Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0))" ( (comma_expression "Sized_relobj_file<64,_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0)" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (comma_expression "_false> *)in_stack_fffffd98,\n                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0)" (binary_expression "_false> *)in_stack_fffffd98" identifier > (pointer_expression "*)in_stack_fffffd98" * (ERROR ")" )) identifier)) , (comma_expression "(uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0)" (cast_expression "(uint)in_stack_fffffd9c" ( (type_descriptor "uint" type_identifier) ) identifier) , (call_expression "SUB41(in_stack_fffffda0,0)" identifier (argument_list "(in_stack_fffffda0,0)" ( identifier , number_literal )))))) )))) ;) (if_statement "if (bVar16) {\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }\n            else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);\n              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);\n              uVar18 = (uint)data_shndx_00 & 0x7fffffff;\n              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);\n              uVar7 = (undefined4)(reloc.p_)->r_addend;\n              uVar8 = (undefined4)(reloc.p_)->r_offset;\n              pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;\n              if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }\n              if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }\n              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);\n              if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }\n            }" { (expression_statement "uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);" (assignment_expression "uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4)" identifier = (pointer_expression "*(uint *)((int)&(reloc.p_)->r_info + 4)" * (cast_expression "(uint *)((int)&(reloc.p_)->r_info + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(reloc.p_)->r_info + 4)" ( (binary_expression "(int)&(reloc.p_)->r_info + 4" (cast_expression "(int)&(reloc.p_)->r_info" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(reloc.p_)->r_info" & (field_expression "(reloc.p_)->r_info" (parenthesized_expression "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) )) -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);" (assignment_expression "uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(reloc.p_)->r_addend + 4)" * (cast_expression "(undefined4 *)((int)&(reloc.p_)->r_addend + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(reloc.p_)->r_addend + 4)" ( (binary_expression "(int)&(reloc.p_)->r_addend + 4" (cast_expression "(int)&(reloc.p_)->r_addend" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(reloc.p_)->r_addend" & (field_expression "(reloc.p_)->r_addend" (parenthesized_expression "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) )) -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar18 = (uint)data_shndx_00 & 0x7fffffff;" (assignment_expression "uVar18 = (uint)data_shndx_00 & 0x7fffffff" identifier = (binary_expression "(uint)data_shndx_00 & 0x7fffffff" (cast_expression "(uint)data_shndx_00" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);" (assignment_expression "uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(reloc.p_)->r_offset + 4)" * (cast_expression "(undefined4 *)((int)&(reloc.p_)->r_offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(reloc.p_)->r_offset + 4)" ( (binary_expression "(int)&(reloc.p_)->r_offset + 4" (cast_expression "(int)&(reloc.p_)->r_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(reloc.p_)->r_offset" & (field_expression "(reloc.p_)->r_offset" (parenthesized_expression "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) )) -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar7 = (undefined4)(reloc.p_)->r_addend;" (assignment_expression "uVar7 = (undefined4)(reloc.p_)->r_addend" identifier = (field_expression "(undefined4)(reloc.p_)->r_addend" (call_expression "(undefined4)(reloc.p_)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) ))) -> field_identifier)) ;) (expression_statement "uVar8 = (undefined4)(reloc.p_)->r_offset;" (assignment_expression "uVar8 = (undefined4)(reloc.p_)->r_offset" identifier = (field_expression "(undefined4)(reloc.p_)->r_offset" (call_expression "(undefined4)(reloc.p_)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) ))) -> field_identifier)) ;) (ERROR "pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::" (comma_expression "pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std" (binary_expression "pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64" (assignment_expression "pBVar9 = (this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)" identifier = (binary_expression "(this->branch_info_).\n                       super__Vector_base<(anonymous_namespace)" (field_expression "(this->branch_info_).\n                       super__Vector_base" (parenthesized_expression "(this->branch_info_)" ( (field_expression "this->branch_info_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (comma_expression "_false>::Branch_info,_std" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (expression_statement "Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish;" (comma_expression "Target_powerpc<64,_false>::Branch_info>_>\n                       ._M_impl._M_finish" (binary_expression "Target_powerpc<64" identifier < number_literal) , (field_expression "_false>::Branch_info>_>\n                       ._M_impl._M_finish" (field_expression "_false>::Branch_info>_>\n                       ._M_impl" (binary_expression "_false>::Branch_info>_" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (if_statement "if (pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage) {\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }\n              else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }" if (parenthesized_expression "(pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage)" ( (ERROR "pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::" (comma_expression "pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std" (binary_expression "pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64" (binary_expression "pBVar9 == (this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)" identifier == (binary_expression "(this->branch_info_).\n                            super__Vector_base<(anonymous_namespace)" (field_expression "(this->branch_info_).\n                            super__Vector_base" (parenthesized_expression "(this->branch_info_)" ( (field_expression "this->branch_info_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (comma_expression "_false>::Branch_info,_std" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (comma_expression "Target_powerpc<64,_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage" (binary_expression "Target_powerpc<64" identifier < number_literal) , (field_expression "_false>::Branch_info>_>\n                            ._M_impl._M_end_of_storage" (field_expression "_false>::Branch_info>_>\n                            ._M_impl" (binary_expression "_false>::Branch_info>_" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)) )) (compound_statement "{\n                pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;\n                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;\n                if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }\n                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);\n                *puVar28 = object;\n                puVar28[3] = uVar6;\n                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;\n                puVar28[1] = data_shndx;\n                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);\n                puVar28[2] = uVar8;\n                puVar28[7] = uVar5;\n                puVar28[5] = uVar35;\n                puVar28[6] = uVar7;\n                pBVar29 = local_238;\n                pBVar33 = pBVar12;\n                if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }\n                if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;\n              }" { (ERROR "pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::" (comma_expression "pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std" (binary_expression "pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64" (assignment_expression "pBVar12 = (this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)" identifier = (binary_expression "(this->branch_info_).\n                          super__Vector_base<(anonymous_namespace)" (field_expression "(this->branch_info_).\n                          super__Vector_base" (parenthesized_expression "(this->branch_info_)" ( (field_expression "this->branch_info_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (comma_expression "_false>::Branch_info,_std" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (expression_statement "Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start;" (comma_expression "Target_powerpc<64,_false>::Branch_info>_>\n                          ._M_impl._M_start" (binary_expression "Target_powerpc<64" identifier < number_literal) , (field_expression "_false>::Branch_info>_>\n                          ._M_impl._M_start" (field_expression "_false>::Branch_info>_>\n                          ._M_impl" (binary_expression "_false>::Branch_info>_" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;" (assignment_expression "uVar25 = (int)pBVar9 - (int)pBVar12 >> 5" identifier = (binary_expression "(int)pBVar9 - (int)pBVar12 >> 5" (binary_expression "(int)pBVar9 - (int)pBVar12" (cast_expression "(int)pBVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pBVar12" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (uVar25 == 0) {\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }\n                else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }" if (parenthesized_expression "(uVar25 == 0)" ( (binary_expression "uVar25 == 0" identifier == number_literal) )) (compound_statement "{\n                  local_240 = (pointer)0x20;\nLAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);\n                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);\n                  local_240 = local_238 + 1;\n                }" { (expression_statement "local_240 = (pointer)0x20;" (assignment_expression "local_240 = (pointer)0x20" identifier = (cast_expression "(pointer)0x20" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (labeled_statement "LAB_0008f9a2:\n                  local_238 = (pointer)operator_new((uint)local_240);" statement_identifier : (expression_statement "local_238 = (pointer)operator_new((uint)local_240);" (assignment_expression "local_238 = (pointer)operator_new((uint)local_240)" identifier = (cast_expression "(pointer)operator_new((uint)local_240)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "operator_new((uint)local_240)" identifier (argument_list "((uint)local_240)" ( (cast_expression "(uint)local_240" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;)) (expression_statement "local_248 = (pointer)((int)&local_238->object_ + (int)local_240);" (assignment_expression "local_248 = (pointer)((int)&local_238->object_ + (int)local_240)" identifier = (call_expression "(pointer)((int)&local_238->object_ + (int)local_240)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)&local_238->object_ + (int)local_240)" ( (binary_expression "(int)&local_238->object_ + (int)local_240" (cast_expression "(int)&local_238->object_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_238->object_" & (field_expression "local_238->object_" identifier -> field_identifier))) + (cast_expression "(int)local_240" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_240 = local_238 + 1;" (assignment_expression "local_240 = local_238 + 1" identifier = (binary_expression "local_238 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }" else (compound_statement "{\n                  uVar13 = uVar25 * 2;\n                  if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0xffffffe0;\n                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;\n                  if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (pointer)0x20;\n                  local_248 = (pointer)0x0;\n                  local_238 = (pointer)0x0;\n                }" { (expression_statement "uVar13 = uVar25 * 2;" (assignment_expression "uVar13 = uVar25 * 2" identifier = (binary_expression "uVar25 * 2" identifier * number_literal)) ;) (if_statement "if (uVar13 < uVar25) {\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }" if (parenthesized_expression "(uVar13 < uVar25)" ( (binary_expression "uVar13 < uVar25" identifier < identifier) )) (compound_statement "{\n                    local_240 = (pointer)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }" { (expression_statement "local_240 = (pointer)0xffffffe0;" (assignment_expression "local_240 = (pointer)0xffffffe0" identifier = (cast_expression "(pointer)0xffffffe0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (goto_statement "goto LAB_0008f9a2;" goto statement_identifier ;) })) (expression_statement "local_240 = (pointer)0xffffffe0;" (assignment_expression "local_240 = (pointer)0xffffffe0" identifier = (cast_expression "(pointer)0xffffffe0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (if_statement "if (0x7ffffff < uVar13) goto LAB_0008f9a2;" if (parenthesized_expression "(0x7ffffff < uVar13)" ( (binary_expression "0x7ffffff < uVar13" number_literal < identifier) )) (goto_statement "goto LAB_0008f9a2;" goto statement_identifier ;)) (if_statement "if (uVar13 != 0) {\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_240 = (pointer)(uVar25 << 6);\n                    goto LAB_0008f9a2;\n                  }" { (expression_statement "local_240 = (pointer)(uVar25 << 6);" (assignment_expression "local_240 = (pointer)(uVar25 << 6)" identifier = (call_expression "(pointer)(uVar25 << 6)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(uVar25 << 6)" ( (binary_expression "uVar25 << 6" identifier << number_literal) )))) ;) (goto_statement "goto LAB_0008f9a2;" goto statement_identifier ;) })) (expression_statement "local_240 = (pointer)0x20;" (assignment_expression "local_240 = (pointer)0x20" identifier = (cast_expression "(pointer)0x20" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "local_248 = (pointer)0x0;" (assignment_expression "local_248 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "local_238 = (pointer)0x0;" (assignment_expression "local_238 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) }))) (expression_statement "puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);" (assignment_expression "puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238)" identifier = (cast_expression "(undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)pBVar9 - (int)pBVar12) + (int)local_238)" ( (binary_expression "((int)pBVar9 - (int)pBVar12) + (int)local_238" (parenthesized_expression "((int)pBVar9 - (int)pBVar12)" ( (binary_expression "(int)pBVar9 - (int)pBVar12" (cast_expression "(int)pBVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pBVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)local_238" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*puVar28 = object;" (assignment_expression "*puVar28 = object" (pointer_expression "*puVar28" * identifier) = identifier) ;) (expression_statement "puVar28[3] = uVar6;" (assignment_expression "puVar28[3] = uVar6" (subscript_expression "puVar28[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[4] = puVar28[4] & 0x80000000 | uVar18;" (assignment_expression "puVar28[4] = puVar28[4] & 0x80000000 | uVar18" (subscript_expression "puVar28[4]" identifier [ number_literal ]) = (binary_expression "puVar28[4] & 0x80000000 | uVar18" (binary_expression "puVar28[4] & 0x80000000" (subscript_expression "puVar28[4]" identifier [ number_literal ]) & number_literal) | identifier)) ;) (expression_statement "puVar28[1] = data_shndx;" (assignment_expression "puVar28[1] = data_shndx" (subscript_expression "puVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);" (assignment_expression "*(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18)" (pointer_expression "*(char *)((int)puVar28 + 0x13)" * (cast_expression "(char *)((int)puVar28 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar28 + 0x13)" ( (binary_expression "(int)puVar28 + 0x13" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)(uVar18 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar18 >> 0x18)" ( (binary_expression "uVar18 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "puVar28[2] = uVar8;" (assignment_expression "puVar28[2] = uVar8" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[7] = uVar5;" (assignment_expression "puVar28[7] = uVar5" (subscript_expression "puVar28[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[5] = uVar35;" (assignment_expression "puVar28[5] = uVar35" (subscript_expression "puVar28[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[6] = uVar7;" (assignment_expression "puVar28[6] = uVar7" (subscript_expression "puVar28[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pBVar29 = local_238;" (assignment_expression "pBVar29 = local_238" identifier = identifier) ;) (expression_statement "pBVar33 = pBVar12;" (assignment_expression "pBVar33 = pBVar12" identifier = identifier) ;) (if_statement "if (pBVar9 != pBVar12) {\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }" if (parenthesized_expression "(pBVar9 != pBVar12)" ( (binary_expression "pBVar9 != pBVar12" identifier != identifier) )) (compound_statement "{\n                  do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);\n                  local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));\n                }" { (do_statement "do {\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  } while (pBVar9 != pBVar34);" do (compound_statement "{\n                    pBVar34 = pBVar33 + 1;\n                    pBVar29->object_ = pBVar33->object_;\n                    pBVar29->shndx_ = pBVar33->shndx_;\n                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;\n                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);\n                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;\n                    pBVar29->r_sym_ = pBVar33->r_sym_;\n                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;\n                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);\n                    pBVar29 = pBVar29 + 1;\n                    pBVar33 = pBVar34;\n                  }" { (expression_statement "pBVar34 = pBVar33 + 1;" (assignment_expression "pBVar34 = pBVar33 + 1" identifier = (binary_expression "pBVar33 + 1" identifier + number_literal)) ;) (expression_statement "pBVar29->object_ = pBVar33->object_;" (assignment_expression "pBVar29->object_ = pBVar33->object_" (field_expression "pBVar29->object_" identifier -> field_identifier) = (field_expression "pBVar33->object_" identifier -> field_identifier)) ;) (expression_statement "pBVar29->shndx_ = pBVar33->shndx_;" (assignment_expression "pBVar29->shndx_ = pBVar33->shndx_" (field_expression "pBVar29->shndx_" identifier -> field_identifier) = (field_expression "pBVar33->shndx_" identifier -> field_identifier)) ;) (expression_statement "*(int *)&pBVar29->offset_ = (int)pBVar33->offset_;" (assignment_expression "*(int *)&pBVar29->offset_ = (int)pBVar33->offset_" (pointer_expression "*(int *)&pBVar29->offset_" * (cast_expression "(int *)&pBVar29->offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar29->offset_" & (field_expression "pBVar29->offset_" identifier -> field_identifier)))) = (cast_expression "(int)pBVar33->offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "pBVar33->offset_" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4);" (assignment_expression "*(undefined4 *)((int)&pBVar29->offset_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->offset_ + 4)" (pointer_expression "*(undefined4 *)((int)&pBVar29->offset_ + 4)" * (cast_expression "(undefined4 *)((int)&pBVar29->offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pBVar29->offset_ + 4)" ( (binary_expression "(int)&pBVar29->offset_ + 4" (cast_expression "(int)&pBVar29->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pBVar29->offset_" & (field_expression "pBVar29->offset_" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&pBVar33->offset_ + 4)" * (cast_expression "(undefined4 *)((int)&pBVar33->offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pBVar33->offset_ + 4)" ( (binary_expression "(int)&pBVar33->offset_ + 4" (cast_expression "(int)&pBVar33->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pBVar33->offset_" & (field_expression "pBVar33->offset_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;" (assignment_expression "*(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10" (pointer_expression "*(undefined4 *)&pBVar29->field_0x10" * (cast_expression "(undefined4 *)&pBVar29->field_0x10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar29->field_0x10" & (field_expression "pBVar29->field_0x10" identifier -> field_identifier)))) = (pointer_expression "*(undefined4 *)&pBVar33->field_0x10" * (cast_expression "(undefined4 *)&pBVar33->field_0x10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar33->field_0x10" & (field_expression "pBVar33->field_0x10" identifier -> field_identifier))))) ;) (expression_statement "pBVar29->r_sym_ = pBVar33->r_sym_;" (assignment_expression "pBVar29->r_sym_ = pBVar33->r_sym_" (field_expression "pBVar29->r_sym_" identifier -> field_identifier) = (field_expression "pBVar33->r_sym_" identifier -> field_identifier)) ;) (expression_statement "*(int *)&pBVar29->addend_ = (int)pBVar33->addend_;" (assignment_expression "*(int *)&pBVar29->addend_ = (int)pBVar33->addend_" (pointer_expression "*(int *)&pBVar29->addend_" * (cast_expression "(int *)&pBVar29->addend_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar29->addend_" & (field_expression "pBVar29->addend_" identifier -> field_identifier)))) = (cast_expression "(int)pBVar33->addend_" ( (type_descriptor "int" primitive_type) ) (field_expression "pBVar33->addend_" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4);" (assignment_expression "*(undefined4 *)((int)&pBVar29->addend_ + 4) =\n                         *(undefined4 *)((int)&pBVar33->addend_ + 4)" (pointer_expression "*(undefined4 *)((int)&pBVar29->addend_ + 4)" * (cast_expression "(undefined4 *)((int)&pBVar29->addend_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pBVar29->addend_ + 4)" ( (binary_expression "(int)&pBVar29->addend_ + 4" (cast_expression "(int)&pBVar29->addend_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pBVar29->addend_" & (field_expression "pBVar29->addend_" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&pBVar33->addend_ + 4)" * (cast_expression "(undefined4 *)((int)&pBVar33->addend_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pBVar33->addend_ + 4)" ( (binary_expression "(int)&pBVar33->addend_ + 4" (cast_expression "(int)&pBVar33->addend_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pBVar33->addend_" & (field_expression "pBVar33->addend_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pBVar29 = pBVar29 + 1;" (assignment_expression "pBVar29 = pBVar29 + 1" identifier = (binary_expression "pBVar29 + 1" identifier + number_literal)) ;) (expression_statement "pBVar33 = pBVar34;" (assignment_expression "pBVar33 = pBVar34" identifier = identifier) ;) }) while (parenthesized_expression "(pBVar9 != pBVar34)" ( (binary_expression "pBVar9 != pBVar34" identifier != identifier) )) ;) (expression_statement "local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));" (assignment_expression "local_240 = (pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U))" identifier = (call_expression "(pointer)((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U))" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U))" ( (binary_expression "(int)&local_238[2].object_ +\n                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U)" (cast_expression "(int)&local_238[2].object_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_238[2].object_" & (field_expression "local_238[2].object_" (subscript_expression "local_238[2]" identifier [ number_literal ]) . field_identifier))) + (parenthesized_expression "((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U)" ( (binary_expression "(int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U" (binary_expression "(int)pBVar9 + (-0x20 - (int)pBVar12)" (cast_expression "(int)pBVar9" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x20 - (int)pBVar12)" ( (binary_expression "-0x20 - (int)pBVar12" number_literal - (cast_expression "(int)pBVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) & number_literal) ))) )))) ;) })) (if_statement "if (pBVar12 != (pointer)0x0) {\n                  operator_delete(pBVar12);\n                }" if (parenthesized_expression "(pBVar12 != (pointer)0x0)" ( (binary_expression "pBVar12 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n                  operator_delete(pBVar12);\n                }" { (expression_statement "operator_delete(pBVar12);" (call_expression "operator_delete(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) })) (ERROR "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::" (comma_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std" (binary_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64" (binary_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)" (field_expression "(this->branch_info_).\n                super__Vector_base" (parenthesized_expression "(this->branch_info_)" ( (field_expression "this->branch_info_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (comma_expression "_false>::Branch_info,_std" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (expression_statement "Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238;" (comma_expression "Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_start = local_238" (binary_expression "Target_powerpc<64" identifier < number_literal) , (assignment_expression "_false>::Branch_info>_>\n                ._M_impl._M_start = local_238" (field_expression "_false>::Branch_info>_>\n                ._M_impl._M_start" (field_expression "_false>::Branch_info>_>\n                ._M_impl" (binary_expression "_false>::Branch_info>_" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier)) ;) (ERROR "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::" (comma_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std" (binary_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64" (binary_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)" (field_expression "(this->branch_info_).\n                super__Vector_base" (parenthesized_expression "(this->branch_info_)" ( (field_expression "this->branch_info_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (comma_expression "_false>::Branch_info,_std" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (expression_statement "Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240;" (comma_expression "Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240" (binary_expression "Target_powerpc<64" identifier < number_literal) , (assignment_expression "_false>::Branch_info>_>\n                ._M_impl._M_finish = local_240" (field_expression "_false>::Branch_info>_>\n                ._M_impl._M_finish" (field_expression "_false>::Branch_info>_>\n                ._M_impl" (binary_expression "_false>::Branch_info>_" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier)) ;) (ERROR "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::" (comma_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std" (binary_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64" (binary_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)" (field_expression "(this->branch_info_).\n                super__Vector_base" (parenthesized_expression "(this->branch_info_)" ( (field_expression "this->branch_info_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (comma_expression "_false>::Branch_info,_std" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (expression_statement "Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248;" (comma_expression "Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248" (binary_expression "Target_powerpc<64" identifier < number_literal) , (assignment_expression "_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage = local_248" (field_expression "_false>::Branch_info>_>\n                ._M_impl._M_end_of_storage" (field_expression "_false>::Branch_info>_>\n                ._M_impl" (binary_expression "_false>::Branch_info>_" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier)) ;) }) (else_clause "else {\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }" else (compound_statement "{\n                *(undefined4 *)&pBVar9->offset_ = uVar8;\n                uVar25 = *(uint *)&pBVar9->field_0x10;\n                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;\n                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;\n                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;\n                pBVar9->shndx_ = data_shndx;\n                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;\n                pBVar9->r_sym_ = uVar35;\n                *(undefined4 *)&pBVar9->addend_ = uVar7;\n                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;\n                (this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;\n              }" { (expression_statement "*(undefined4 *)&pBVar9->offset_ = uVar8;" (assignment_expression "*(undefined4 *)&pBVar9->offset_ = uVar8" (pointer_expression "*(undefined4 *)&pBVar9->offset_" * (cast_expression "(undefined4 *)&pBVar9->offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar9->offset_" & (field_expression "pBVar9->offset_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "uVar25 = *(uint *)&pBVar9->field_0x10;" (assignment_expression "uVar25 = *(uint *)&pBVar9->field_0x10" identifier = (pointer_expression "*(uint *)&pBVar9->field_0x10" * (cast_expression "(uint *)&pBVar9->field_0x10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar9->field_0x10" & (field_expression "pBVar9->field_0x10" identifier -> field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;" (assignment_expression "*(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6" (pointer_expression "*(undefined4 *)((int)&pBVar9->offset_ + 4)" * (cast_expression "(undefined4 *)((int)&pBVar9->offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pBVar9->offset_ + 4)" ( (binary_expression "(int)&pBVar9->offset_ + 4" (cast_expression "(int)&pBVar9->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pBVar9->offset_" & (field_expression "pBVar9->offset_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;" (assignment_expression "pBVar9->object_ = (Powerpc_relobj<64,_false> *)object" (field_expression "pBVar9->object_" identifier -> field_identifier) = (parenthesized_expression "(Powerpc_relobj<64,_false> *)object" ( (comma_expression "Powerpc_relobj<64,_false> *)object" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier))) ))) ;) (expression_statement "*(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;" (assignment_expression "*(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18" (pointer_expression "*(uint *)&pBVar9->field_0x10" * (cast_expression "(uint *)&pBVar9->field_0x10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar9->field_0x10" & (field_expression "pBVar9->field_0x10" identifier -> field_identifier)))) = (binary_expression "uVar25 & 0x80000000 | uVar18" (binary_expression "uVar25 & 0x80000000" identifier & number_literal) | identifier)) ;) (expression_statement "pBVar9->shndx_ = data_shndx;" (assignment_expression "pBVar9->shndx_ = data_shndx" (field_expression "pBVar9->shndx_" identifier -> field_identifier) = identifier) ;) (expression_statement "pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;" (assignment_expression "pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f" (field_expression "pBVar9->field_0x13" identifier -> field_identifier) = (binary_expression "(byte)((uint)data_shndx_00 >> 0x18) & 0x7f" (call_expression "(byte)((uint)data_shndx_00 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)data_shndx_00 >> 0x18)" ( (binary_expression "(uint)data_shndx_00 >> 0x18" (cast_expression "(uint)data_shndx_00" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) ;) (expression_statement "pBVar9->r_sym_ = uVar35;" (assignment_expression "pBVar9->r_sym_ = uVar35" (field_expression "pBVar9->r_sym_" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&pBVar9->addend_ = uVar7;" (assignment_expression "*(undefined4 *)&pBVar9->addend_ = uVar7" (pointer_expression "*(undefined4 *)&pBVar9->addend_" * (cast_expression "(undefined4 *)&pBVar9->addend_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar9->addend_" & (field_expression "pBVar9->addend_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;" (assignment_expression "*(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5" (pointer_expression "*(undefined4 *)((int)&pBVar9->addend_ + 4)" * (cast_expression "(undefined4 *)((int)&pBVar9->addend_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pBVar9->addend_ + 4)" ( (binary_expression "(int)&pBVar9->addend_ + 4" (cast_expression "(int)&pBVar9->addend_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pBVar9->addend_" & (field_expression "pBVar9->addend_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (ERROR "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::" (comma_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std" (binary_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)::Target_powerpc<64" (binary_expression "(this->branch_info_).\n                super__Vector_base<(anonymous_namespace)" (field_expression "(this->branch_info_).\n                super__Vector_base" (parenthesized_expression "(this->branch_info_)" ( (field_expression "this->branch_info_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (comma_expression "_false>::Branch_info,_std" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (expression_statement "Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1;" (comma_expression "Target_powerpc<64,_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1" (binary_expression "Target_powerpc<64" identifier < number_literal) , (assignment_expression "_false>::Branch_info>_>\n                ._M_impl._M_finish = pBVar9 + 1" (field_expression "_false>::Branch_info>_>\n                ._M_impl._M_finish" (field_expression "_false>::Branch_info>_>\n                ._M_impl" (binary_expression "_false>::Branch_info>_" (binary_expression "_false>::Branch_info" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "pBVar9 + 1" identifier + number_literal))) ;) }))) (if_statement "if ((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3) {\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }" if (parenthesized_expression "((undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3)" ( (binary_expression "(undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U) < (undefined1 *)0x3" (cast_expression "(undefined1 *)\n                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U)" ( (binary_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left + 1U" (cast_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left" & (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header._M_left" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                         _M_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl" (field_expression "data_shndx_00[-1].gnu_properties_._M_t" (field_expression "data_shndx_00[-1].gnu_properties_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))) < (cast_expression "(undefined1 *)0x3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;\n                __position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;\n                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;\n                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;\n                uVar35 = iVar20 - (int)puVar11;\n                if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }\n                (&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));\n              }" { (expression_statement "puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;" (comma_expression "puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_" (assignment_expression "puVar39 = object[1].super_Sized_relobj<64" identifier = (binary_expression "object[1].super_Sized_relobj<64" (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) , (field_expression "_false>.super_Relobj.reloc_bases_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "__position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;" (comma_expression "__position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_" (assignment_expression "__position.super__Bit_iterator_base._M_p =\n                     object[1].super_Sized_relobj<64" (field_expression "__position.super__Bit_iterator_base._M_p" (field_expression "__position.super__Bit_iterator_base" identifier . field_identifier) . field_identifier) = (binary_expression "object[1].super_Sized_relobj<64" (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) , (field_expression "_false>.super_Relobj.reloc_bases_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "__position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;" (comma_expression "__position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_" (assignment_expression "__position.super__Bit_iterator_base._M_offset =\n                     object[1].super_Sized_relobj<64" (field_expression "__position.super__Bit_iterator_base._M_offset" (field_expression "__position.super__Bit_iterator_base" identifier . field_identifier) . field_identifier) = (binary_expression "object[1].super_Sized_relobj<64" (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) , (field_expression "_false>.super_Relobj.first_dyn_reloc_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;" (comma_expression "puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_" (assignment_expression "puVar11 = object[1].super_Sized_relobj<64" identifier = (binary_expression "object[1].super_Sized_relobj<64" (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) , (field_expression "_false>.super_Relobj.reloc_counts_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;" (comma_expression "pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_" (assignment_expression "pSVar24 = object[1].super_Sized_relobj<64" identifier = (binary_expression "object[1].super_Sized_relobj<64" (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) , (field_expression "_false>.super_Relobj.sd_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8;" (comma_expression "iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8" (assignment_expression "iVar20 = object[1].super_Sized_relobj<64" identifier = (binary_expression "object[1].super_Sized_relobj<64" (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) , (binary_expression "_false>.super_Relobj.first_dyn_reloc_ +\n                         ((int)puVar39 - (int)pSVar24) * 8" (field_expression "_false>.super_Relobj.first_dyn_reloc_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) + (binary_expression "((int)puVar39 - (int)pSVar24) * 8" (parenthesized_expression "((int)puVar39 - (int)pSVar24)" ( (binary_expression "(int)puVar39 - (int)pSVar24" (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pSVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal))) ;) (expression_statement "uVar35 = iVar20 - (int)puVar11;" (assignment_expression "uVar35 = iVar20 - (int)puVar11" identifier = (binary_expression "iVar20 - (int)puVar11" identifier - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar35 <= data_shndx) {\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }" if (parenthesized_expression "(uVar35 <= data_shndx)" ( (binary_expression "uVar35 <= data_shndx" identifier <= identifier) )) (compound_statement "{\n                  iVar30 = (int)puVar11 + data_shndx + 1;\n                  if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }\n                }" { (expression_statement "iVar30 = (int)puVar11 + data_shndx + 1;" (assignment_expression "iVar30 = (int)puVar11 + data_shndx + 1" identifier = (binary_expression "(int)puVar11 + data_shndx + 1" (binary_expression "(int)puVar11 + data_shndx" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal)) ;) (if_statement "if (data_shndx + 1 < uVar35) {\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }\n                  else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }" if (parenthesized_expression "(data_shndx + 1 < uVar35)" ( (binary_expression "data_shndx + 1 < uVar35" (binary_expression "data_shndx + 1" identifier + number_literal) < identifier) )) (compound_statement "{\n                    iVar20 = iVar30 + 0x1f;\n                    if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }\n                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);\n                    uVar35 = iVar30 % 0x20;\n                    if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;\n                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;\n                  }" { (expression_statement "iVar20 = iVar30 + 0x1f;" (assignment_expression "iVar20 = iVar30 + 0x1f" identifier = (binary_expression "iVar30 + 0x1f" identifier + number_literal)) ;) (if_statement "if (-1 < iVar30) {\n                      iVar20 = iVar30;\n                    }" if (parenthesized_expression "(-1 < iVar30)" ( (binary_expression "-1 < iVar30" number_literal < identifier) )) (compound_statement "{\n                      iVar20 = iVar30;\n                    }" { (expression_statement "iVar20 = iVar30;" (assignment_expression "iVar20 = iVar30" identifier = identifier) ;) })) (expression_statement "ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);" (assignment_expression "ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5)" identifier = (binary_expression "&pSVar24->section_headers_data + (iVar20 >> 5)" (pointer_expression "&pSVar24->section_headers_data" & (field_expression "pSVar24->section_headers_data" identifier -> field_identifier)) + (parenthesized_expression "(iVar20 >> 5)" ( (binary_expression "iVar20 >> 5" identifier >> number_literal) )))) ;) (expression_statement "uVar35 = iVar30 % 0x20;" (assignment_expression "uVar35 = iVar30 % 0x20" identifier = (binary_expression "iVar30 % 0x20" identifier % number_literal)) ;) (if_statement "if ((int)uVar35 < 0) {\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }" if (parenthesized_expression "((int)uVar35 < 0)" ( (binary_expression "(int)uVar35 < 0" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                      uVar35 = uVar35 + 0x20;\n                      ppuVar36 = ppuVar36 + -1;\n                    }" { (expression_statement "uVar35 = uVar35 + 0x20;" (assignment_expression "uVar35 = uVar35 + 0x20" identifier = (binary_expression "uVar35 + 0x20" identifier + number_literal)) ;) (expression_statement "ppuVar36 = ppuVar36 + -1;" (assignment_expression "ppuVar36 = ppuVar36 + -1" identifier = (binary_expression "ppuVar36 + -1" identifier + number_literal)) ;) })) (expression_statement "object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36;" (comma_expression "object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36" (binary_expression "object[1].super_Sized_relobj<64" (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.reloc_bases_ =\n                         (uint *)ppuVar36" (field_expression "_false>.super_Relobj.reloc_bases_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(uint *)ppuVar36" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;" (comma_expression "object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35" (binary_expression "object[1].super_Sized_relobj<64" (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.first_dyn_reloc_ = uVar35" (field_expression "_false>.super_Relobj.first_dyn_reloc_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = identifier)) ;) }) (else_clause "else {\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }" else (compound_statement "{\n                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);\n                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;\n                    in_stack_fffffdac = puVar39;\n                  }" { (labeled_statement "std::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std::allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);" statement_identifier (ERROR "::vector<bool,_std::allocator<bool>_>::_M_fill_insert\n                              ((vector<bool,_std:" : : (comma_expression "vector<bool,_std" (binary_expression "vector<bool" identifier < identifier) , identifier) : : (binary_expression "allocator<bool>_" (binary_expression "allocator<bool" identifier < identifier) > identifier) > : : identifier ( ( (comma_expression "vector<bool,_std" (binary_expression "vector<bool" identifier < identifier) , identifier) :) : (expression_statement "allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false);" (comma_expression "allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false" (binary_expression "allocator<bool>_> *)\n                               &object[1].super_Sized_relobj<64" (binary_expression "allocator<bool>_> *)\n                               &object[1].super_Sized_relobj" (binary_expression "allocator<bool>_" (binary_expression "allocator<bool" identifier < identifier) > identifier) > (pointer_expression "*)\n                               &object[1].super_Sized_relobj" * (ERROR ")" )) (pointer_expression "&object[1].super_Sized_relobj" & (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier)))) < number_literal) , (comma_expression "_false>.super_Relobj.sd_,__position,\n                               iVar30 - iVar20,false" (field_expression "_false>.super_Relobj.sd_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) , (comma_expression "__position,\n                               iVar30 - iVar20,false" identifier , (comma_expression "iVar30 - iVar20,false" (binary_expression "iVar30 - iVar20" identifier - identifier) , false)))) (ERROR ")" )) ;)) (expression_statement "pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;" (comma_expression "pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_" (assignment_expression "pSVar24 = object[1].super_Sized_relobj<64" identifier = (binary_expression "object[1].super_Sized_relobj<64" (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) , (field_expression "_false>.super_Relobj.sd_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "in_stack_fffffdac = puVar39;" (assignment_expression "in_stack_fffffdac = puVar39" identifier = identifier) ;) }))) })) (expression_statement "(&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f));" (assignment_expression "(&pSVar24->section_headers_data)[data_shndx >> 5] =\n                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f))" (subscript_expression "(&pSVar24->section_headers_data)[data_shndx >> 5]" (parenthesized_expression "(&pSVar24->section_headers_data)" ( (pointer_expression "&pSVar24->section_headers_data" & (field_expression "pSVar24->section_headers_data" identifier -> field_identifier)) )) [ (binary_expression "data_shndx >> 5" identifier >> number_literal) ]) = (cast_expression "(uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f))" ( (binary_expression "(uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |\n                              1 << ((byte)data_shndx & 0x1f)" (subscript_expression "(uint)(&pSVar24->section_headers_data)[data_shndx >> 5]" (call_expression "(uint)(&pSVar24->section_headers_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&pSVar24->section_headers_data)" ( (pointer_expression "&pSVar24->section_headers_data" & (field_expression "pSVar24->section_headers_data" identifier -> field_identifier)) ))) [ (binary_expression "data_shndx >> 5" identifier >> number_literal) ]) | (binary_expression "1 << ((byte)data_shndx & 0x1f)" number_literal << (parenthesized_expression "((byte)data_shndx & 0x1f)" ( (binary_expression "(byte)data_shndx & 0x1f" (cast_expression "(byte)data_shndx" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) )))) ;) })) (expression_statement "make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0);" (call_expression "make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0)" identifier (argument_list "((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0)" ( (parenthesized_expression "(Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0)" ( (comma_expression "Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0" (binary_expression "Target_powerpc<64" identifier < number_literal) , (comma_expression "_false> *)this_00,(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0" (binary_expression "_false> *)this_00" identifier > (pointer_expression "*)this_00" * (ERROR ")" )) identifier)) , (comma_expression "(Symbol_table *)in_stack_fffffd98,\n                             in_stack_fffffd9c,in_stack_fffffda0" (cast_expression "(Symbol_table *)in_stack_fffffd98" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (comma_expression "in_stack_fffffd9c,in_stack_fffffda0" identifier , identifier)))) )) ))) ;) (if_statement "if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }" if (parenthesized_expression "(data_shndx_00 < (Layout *)0xff)" ( (binary_expression "data_shndx_00 < (Layout *)0xff" identifier < (cast_expression "(Layout *)0xff" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();\n                return;\n              }" { comment comment (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37)" ( (binary_expression "*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37" (pointer_expression "*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4)" ( (binary_expression "unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4" (binary_expression "unaff_EDI + 0x25ffaf" identifier + number_literal) + (binary_expression "(int)data_shndx_00 * 4" (cast_expression "(int)data_shndx_00" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }" else (if_statement "if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }" if (parenthesized_expression "(data_shndx_00 < (Layout *)0xff)" ( (binary_expression "data_shndx_00 < (Layout *)0xff" identifier < (cast_expression "(Layout *)0xff" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();\n              return;\n            }" { comment comment (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37)" ( (binary_expression "*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37" (pointer_expression "*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4)" ( (binary_expression "unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4" (binary_expression "unaff_EDI + 0x25fbb3" identifier + number_literal) + (binary_expression "(int)data_shndx_00 * 4" (cast_expression "(int)data_shndx_00" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))) }) (else_clause "else if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }" else (if_statement "if (data_shndx_00 < (Layout *)0xff) {\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }" if (parenthesized_expression "(data_shndx_00 < (Layout *)0xff)" ( (binary_expression "data_shndx_00 < (Layout *)0xff" identifier < (cast_expression "(Layout *)0xff" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();\n            return;\n          }" { comment comment (expression_statement "(*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();" (call_expression "(*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))()" (parenthesized_expression "(*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))" ( (pointer_expression "*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37)" * (cast_expression "(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37)" ( (binary_expression "*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37" (pointer_expression "*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI)" * (cast_expression "(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI)" ( (binary_expression "&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI" (binary_expression "&UNK_0025f53f + (int)data_shndx_00 * 4" (pointer_expression "&UNK_0025f53f" & identifier) + (binary_expression "(int)data_shndx_00 * 4" (cast_expression "(int)data_shndx_00" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + identifier) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))) (labeled_statement "gold::Symbol::demangled_name((Symbol *)this_00);" statement_identifier : (ERROR ":" :) (labeled_statement "Symbol::demangled_name((Symbol *)this_00);" statement_identifier : (ERROR ":" :) (expression_statement "demangled_name((Symbol *)this_00);" (call_expression "demangled_name((Symbol *)this_00)" identifier (argument_list "((Symbol *)this_00)" ( (cast_expression "(Symbol *)this_00" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) (expression_statement "in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;" (assignment_expression "in_stack_fffffd98 =\n               (Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p" identifier = (cast_expression "(Layout *)\n               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);" (assignment_expression "pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x269ceb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x269ceb)" identifier (argument_list "(unaff_EDI + 0x269ceb)" ( (binary_expression "unaff_EDI + 0x269ceb" identifier + number_literal) ))))) ;) (expression_statement "in_stack_fffffd9c = data_shndx_00;" (assignment_expression "in_stack_fffffd9c = data_shndx_00" identifier = identifier) ;) (expression_statement "in_stack_fffffda0 = local_154;" (assignment_expression "in_stack_fffffda0 = local_154" identifier = identifier) ;) comment (labeled_statement "gold::gold_error(pcVar22);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error(pcVar22);" (call_expression "gold_error(pcVar22)" identifier (argument_list "(pcVar22)" ( identifier ))) ;)) (if_statement "if (local_154 != local_14c) {\n            operator_delete(local_154);\n          }" if (parenthesized_expression "(local_154 != local_14c)" ( (binary_expression "local_154 != local_14c" identifier != identifier) )) (compound_statement "{\n            operator_delete(local_154);\n          }" { (expression_statement "operator_delete(local_154);" (call_expression "operator_delete(local_154)" identifier (argument_list "(local_154)" ( identifier ))) ;) })) (expression_statement "iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar20 == 0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));\n          }" { comment (labeled_statement "gold::do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));" (call_expression "do_gold_unreachable\n                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f))" identifier (argument_list "((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f))" ( (cast_expression "(char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +\n                               unaff_EDI + 4)" ( (ERROR "std::__copy_streambufs<wchar_t,std::" identifier : : (comma_expression "__copy_streambufs<wchar_t,std" (binary_expression "__copy_streambufs<wchar_t" identifier < identifier) , identifier) : :) (binary_expression "char_traits<wchar_t>> +\n                               unaff_EDI + 4" identifier < (binary_expression "wchar_t>> +\n                               unaff_EDI + 4" identifier >> (binary_expression "+\n                               unaff_EDI + 4" (unary_expression "+\n                               unaff_EDI" + identifier) + number_literal))) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x26878f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x26878f)" ( (binary_expression "unaff_EDI + 0x26878f" identifier + number_literal) ))) ))) ;)) })) (if_statement "if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;" if (parenthesized_expression "(*(char *)(iVar20 + 0x3fed) == '\0')" ( (binary_expression "*(char *)(iVar20 + 0x3fed) == '\0'" (pointer_expression "*(char *)(iVar20 + 0x3fed)" * (cast_expression "(char *)(iVar20 + 0x3fed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3fed)" ( (binary_expression "iVar20 + 0x3fed" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008e248;" goto statement_identifier ;)) (if_statement "if (data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity) {\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }" if (parenthesized_expression "(data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity)" ( (comma_expression "data_shndx ==\n              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity" (binary_expression "data_shndx ==\n              object[1].super_Sized_relobj<64" identifier == (binary_expression "object[1].super_Sized_relobj<64" (field_expression "object[1].super_Sized_relobj" (subscript_expression "object[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) , (field_expression "_false>.super_Relobj.super_Object.name_.field_2.\n              _M_allocated_capacity" (field_expression "_false>.super_Relobj.super_Object.name_.field_2" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) )) (compound_statement "{\n            if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }\n            if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }" { (if_statement "if (data_shndx_00 != (Layout *)0x26) {\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }" if (parenthesized_expression "(data_shndx_00 != (Layout *)0x26)" ( (binary_expression "data_shndx_00 != (Layout *)0x26" identifier != (cast_expression "(Layout *)0x26" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;\n              Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              goto joined_r0x0008e46f;\n            }" { (labeled_statement "LAB_0008e450:\n                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */\n              in_stack_fffffda0 = (Symbol *)0x8e463;" statement_identifier : comment (expression_statement "in_stack_fffffda0 = (Symbol *)0x8e463;" (assignment_expression "in_stack_fffffda0 = (Symbol *)0x8e463" identifier = (cast_expression "(Symbol *)0x8e463" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));" (comma_expression "Powerpc_relobj<64,_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8))" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (binary_expression "_false>::set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8))" identifier > (ERROR "::" : :) (call_expression "set_no_toc_opt\n                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8))" identifier (argument_list "(in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8))" ( identifier , (call_expression "CONCAT44(in_stack_fffffdac,in_stack_fffffda8)" identifier (argument_list "(in_stack_fffffdac,in_stack_fffffda8)" ( identifier , identifier ))) ))))) ;) (goto_statement "goto joined_r0x0008e46f;" goto statement_identifier ;) })) (if_statement "if (bVar17 == 10) {\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }" if (parenthesized_expression "(bVar17 == 10)" ( (binary_expression "bVar17 == 10" identifier == number_literal) )) (compound_statement "{\n              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }" { (if_statement "if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }" if (parenthesized_expression "(((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0'))" ( (binary_expression "((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')" (parenthesized_expression "((this->field_0x8 & 2) != 0)" ( (binary_expression "(this->field_0x8 & 2) != 0" (parenthesized_expression "(this->field_0x8 & 2)" ( (binary_expression "this->field_0x8 & 2" (field_expression "this->field_0x8" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar20 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar20 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar20 + 0x1a25)" * (cast_expression "(char *)(iVar20 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1a25)" ( (binary_expression "iVar20 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                bVar17 = *(byte *)(iVar20 + 0x2931);\njoined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;\n              }" { (expression_statement "bVar17 = *(byte *)(iVar20 + 0x2931);" (assignment_expression "bVar17 = *(byte *)(iVar20 + 0x2931)" identifier = (pointer_expression "*(byte *)(iVar20 + 0x2931)" * (cast_expression "(byte *)(iVar20 + 0x2931)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x2931)" ( (binary_expression "iVar20 + 0x2931" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x0008e445:\n                if (bVar17 == 0) goto LAB_0008e248;" statement_identifier : (if_statement "if (bVar17 == 0) goto LAB_0008e248;" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008e248;" goto statement_identifier ;))) })) (goto_statement "goto LAB_0008e450;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }" if (parenthesized_expression "((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0'))" ( (binary_expression "(*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')" (parenthesized_expression "(*(char *)(iVar20 + 0x1a25) != '\0')" ( (binary_expression "*(char *)(iVar20 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar20 + 0x1a25)" * (cast_expression "(char *)(iVar20 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1a25)" ( (binary_expression "iVar20 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar20 + 0x2931) != '\0')" ( (binary_expression "*(char *)(iVar20 + 0x2931) != '\0'" (pointer_expression "*(char *)(iVar20 + 0x2931)" * (cast_expression "(char *)(iVar20 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x2931)" ( (binary_expression "iVar20 + 0x2931" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);\n              if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;\n            }" { (expression_statement "bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2);" (assignment_expression "bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2)" identifier = (pointer_expression "*(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2)" * (cast_expression "(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2)" ( (ERROR "(int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::" (comma_expression "(int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int,_std" (binary_expression "(int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std::vector<int" (binary_expression "(int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base<std" (cast_expression "(int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base" & (field_expression "(this_00->namepool_).key_to_offset_.chunks_.\n                                       super__Vector_base" (field_expression "(this_00->namepool_).key_to_offset_.chunks_" (field_expression "(this_00->namepool_).key_to_offset_" (parenthesized_expression "(this_00->namepool_)" ( (field_expression "this_00->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<int>_>,_std" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<int,_std" (binary_expression "vector<int" identifier < identifier) , identifier) : :) (binary_expression "allocator<int>_>_>_>\n                                       ._M_impl._M_finish + 2" (field_expression "allocator<int>_>_>_>\n                                       ._M_impl._M_finish" (field_expression "allocator<int>_>_>_>\n                                       ._M_impl" (binary_expression "allocator<int>_>_>_" (binary_expression "allocator<int>_>_" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + number_literal) ))))) ;) (if_statement "if ((bVar17 & 7) == 0) {\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;" if (parenthesized_expression "((bVar17 & 7) == 0)" ( (binary_expression "(bVar17 & 7) == 0" (parenthesized_expression "(bVar17 & 7)" ( (binary_expression "bVar17 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;\n                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;\n                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;\n                if (sVar3 == 0) goto joined_r0x0008e445;\n              }" { (expression_statement "sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity;" (assignment_expression "sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity" identifier = (field_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                        _M_allocated_capacity" (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)" ( (binary_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count" (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" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) & (field_expression "(this_00->namepool_).string_set_._M_h._M_bucket_count" (field_expression "(this_00->namepool_).string_set_._M_h" (field_expression "(this_00->namepool_).string_set_" (parenthesized_expression "(this_00->namepool_)" ( (field_expression "this_00->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) )) -> field_identifier)) ;) (expression_statement "bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1;" (assignment_expression "bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5 & 1" (binary_expression "*(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3) >> 5" (pointer_expression "*(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3)" * (cast_expression "(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3)" ( (ERROR "(int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::" (comma_expression "(int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int,_std" (binary_expression "(int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std::vector<int" (binary_expression "(int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base<std" (cast_expression "(int)&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base" & (field_expression "(this_00->namepool_).key_to_offset_.chunks_.\n                                         super__Vector_base" (field_expression "(this_00->namepool_).key_to_offset_.chunks_" (field_expression "(this_00->namepool_).key_to_offset_" (parenthesized_expression "(this_00->namepool_)" ( (field_expression "this_00->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<int>_>,_std" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<int,_std" (binary_expression "vector<int" identifier < identifier) , identifier) : :) (binary_expression "allocator<int>_>_>_>\n                                         ._M_impl._M_finish + 3" (field_expression "allocator<int>_>_>_>\n                                         ._M_impl._M_finish" (field_expression "allocator<int>_>_>_>\n                                         ._M_impl" (binary_expression "allocator<int>_>_>_" (binary_expression "allocator<int>_>_" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;" if (parenthesized_expression "((sVar3 == 0xfff1) && (bVar17 == 0))" ( (binary_expression "(sVar3 == 0xfff1) && (bVar17 == 0)" (parenthesized_expression "(sVar3 == 0xfff1)" ( (binary_expression "sVar3 == 0xfff1" identifier == number_literal) )) && (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0008e450;" goto statement_identifier ;)) (if_statement "if (sVar3 == 0) goto joined_r0x0008e445;" if (parenthesized_expression "(sVar3 == 0)" ( (binary_expression "sVar3 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x0008e445;" goto statement_identifier ;)) }) (else_clause "else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;" else (if_statement "if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;" if (parenthesized_expression "((byte)((bVar17 & 7) - 3) < 2)" ( (binary_expression "(byte)((bVar17 & 7) - 3) < 2" (call_expression "(byte)((bVar17 & 7) - 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((bVar17 & 7) - 3)" ( (binary_expression "(bVar17 & 7) - 3" (parenthesized_expression "(bVar17 & 7)" ( (binary_expression "bVar17 & 7" identifier & number_literal) )) - number_literal) ))) < number_literal) )) (goto_statement "goto LAB_0008e450;" goto statement_identifier ;)))) })) }) (else_clause "else {\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }" else (compound_statement "{\njoined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }\n            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);\n            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }\n          }" { (labeled_statement "joined_r0x0008e46f:\n            if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }" statement_identifier : (if_statement "if ((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }" if (parenthesized_expression "((undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50)" ( (binary_expression "(undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U) < (undefined1 *)0x50" (cast_expression "(undefined1 *)\n                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U)" ( (binary_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent + 1U" (cast_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent" & (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header._M_parent" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                       _M_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl" (field_expression "data_shndx_00[-1].gnu_properties_._M_t" (field_expression "data_shndx_00[-1].gnu_properties_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))) < (cast_expression "(undefined1 *)0x50" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();\n              return;\n            }" { comment comment (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37)" ( (binary_expression "*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +\n                        iVar37" (pointer_expression "*(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4)" ( (binary_expression "unaff_EDI + 0x25f93b +\n                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4" (binary_expression "unaff_EDI + 0x25f93b" identifier + number_literal) + (binary_expression "(int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1) * 4" (cast_expression "(int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1)" ( (binary_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent + 1" (cast_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent" & (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header._M_parent" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header._M_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.\n                                             super__Rb_tree_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl" (field_expression "data_shndx_00[-1].gnu_properties_._M_t" (field_expression "data_shndx_00[-1].gnu_properties_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))) * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) }))) (expression_statement "puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);" (assignment_expression "puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1)" identifier = (cast_expression "(undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1)" ( (binary_expression "(int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1" (cast_expression "(int)&data_shndx_00[-1].free_list_.last_remove_._M_node" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].free_list_.last_remove_._M_node" & (field_expression "data_shndx_00[-1].free_list_.last_remove_._M_node" (field_expression "data_shndx_00[-1].free_list_.last_remove_" (field_expression "data_shndx_00[-1].free_list_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) ;) (if_statement "if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }" if (parenthesized_expression "((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52]))))" ( (binary_expression "(((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)) &&\n               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))" (parenthesized_expression "(((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0))" ( (binary_expression "((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))\n                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)" (parenthesized_expression "((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))" ( (binary_expression "(puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0)" (parenthesized_expression "(puVar21 < (undefined1 *)0x12)" ( (binary_expression "puVar21 < (undefined1 *)0x12" identifier < (cast_expression "(undefined1 *)0x12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0)" ( (binary_expression "(1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0" (parenthesized_expression "(1 << ((byte)puVar21 & 0x1f) & 0x3000fU)" ( (binary_expression "1 << ((byte)puVar21 & 0x1f) & 0x3000fU" (binary_expression "1 << ((byte)puVar21 & 0x1f)" number_literal << (parenthesized_expression "((byte)puVar21 & 0x1f)" ( (binary_expression "(byte)puVar21 & 0x1f" (cast_expression "(byte)puVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0)" ( (binary_expression "((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000) == 0" (parenthesized_expression "((uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000)" ( (ERROR "(uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::" (comma_expression "(uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int,_std" (binary_expression "(uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std::vector<int" (binary_expression "(uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base<std" (field_expression "(uint)(this_00->namepool_).key_to_offset_.chunks_.\n                           super__Vector_base" (field_expression "(uint)(this_00->namepool_).key_to_offset_.chunks_" (field_expression "(uint)(this_00->namepool_).key_to_offset_" (call_expression "(uint)(this_00->namepool_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this_00->namepool_)" ( (field_expression "this_00->namepool_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<int>_>,_std" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<int,_std" (binary_expression "vector<int" identifier < identifier) , identifier) : :) (binary_expression "allocator<int>_>_>_>\n                           ._M_impl._M_finish & 0x70000" (field_expression "allocator<int>_>_>_>\n                           ._M_impl._M_finish" (field_expression "allocator<int>_>_>_>\n                           ._M_impl" (binary_expression "allocator<int>_>_>_" (binary_expression "allocator<int>_>_" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))" ( (parenthesized_expression "(pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52]))" ( (comma_expression "pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,\n                ((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])" (assignment_expression "pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets" identifier = (field_expression "(this_00->namepool_).string_set_._M_h._M_buckets" (field_expression "(this_00->namepool_).string_set_._M_h" (field_expression "(this_00->namepool_).string_set_" (parenthesized_expression "(this_00->namepool_)" ( (field_expression "this_00->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) , (binary_expression "((uint)pp_Var4[0xb] & 1) == 0 &&\n                (pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])" (binary_expression "((uint)pp_Var4[0xb] & 1) == 0" (parenthesized_expression "((uint)pp_Var4[0xb] & 1)" ( (binary_expression "(uint)pp_Var4[0xb] & 1" (cast_expression "(uint)pp_Var4[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pp_Var4[0xb]" identifier [ number_literal ])) & number_literal) )) == number_literal) && (parenthesized_expression "(pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])" ( (comma_expression "pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52]" (assignment_expression "pLVar19 = (Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity" identifier = (cast_expression "(Layout *)\n                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->\n                           _M_allocated_capacity" (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)" ( (binary_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count" (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" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) & (field_expression "(this_00->namepool_).string_set_._M_h._M_bucket_count" (field_expression "(this_00->namepool_).string_set_._M_h" (field_expression "(this_00->namepool_).string_set_" (parenthesized_expression "(this_00->namepool_)" ( (field_expression "this_00->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) )) -> field_identifier))) , (binary_expression "pLVar19 == (Layout *)pp_Var4[0x52]" identifier == (cast_expression "(Layout *)pp_Var4[0x52]" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pp_Var4[0x52]" identifier [ number_literal ])))) )))) )) ))) )) (compound_statement "{\n              in_stack_fffffda0 = (Symbol *)0x8e5d1;\n              pSVar23 = gold::Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);\n              uVar35 = (uint)pSVar23->value_;\n              EVar14 = (reloc.p_)->r_addend;\n              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);\n              if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }\n              uVar25 = (uint)(EVar38 >> 0x20);\n              if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }\n            }" { (expression_statement "in_stack_fffffda0 = (Symbol *)0x8e5d1;" (assignment_expression "in_stack_fffffda0 = (Symbol *)0x8e5d1" identifier = (cast_expression "(Symbol *)0x8e5d1" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (ERROR "pSVar23 = gold::" (assignment_expression "pSVar23 = gold" identifier = identifier) : :) (labeled_statement "Symbol_table::get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);" statement_identifier : (ERROR ":" :) (expression_statement "get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);" (binary_expression "get_sized_symbol<64>\n                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8)" (binary_expression "get_sized_symbol<64" identifier < number_literal) > (parenthesized_expression "((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8)" ( (comma_expression "(Symbol_table *)in_stack_fffffda4,in_stack_fffffda8" (cast_expression "(Symbol_table *)in_stack_fffffda4" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier) ))) ;)) (expression_statement "uVar35 = (uint)pSVar23->value_;" (assignment_expression "uVar35 = (uint)pSVar23->value_" identifier = (cast_expression "(uint)pSVar23->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar23->value_" identifier -> field_identifier))) ;) (expression_statement "EVar14 = (reloc.p_)->r_addend;" (assignment_expression "EVar14 = (reloc.p_)->r_addend" identifier = (field_expression "(reloc.p_)->r_addend" (parenthesized_expression "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);" (assignment_expression "uVar18 = *(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend)" identifier = (binary_expression "*(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4) +\n                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend)" (binary_expression "*(int *)((int)&pSVar23->value_ + 4) +\n                       *(int *)((int)&(reloc.p_)->r_addend + 4)" (pointer_expression "*(int *)((int)&pSVar23->value_ + 4)" * (cast_expression "(int *)((int)&pSVar23->value_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar23->value_ + 4)" ( (binary_expression "(int)&pSVar23->value_ + 4" (cast_expression "(int)&pSVar23->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar23->value_" & (field_expression "pSVar23->value_" identifier -> field_identifier))) + number_literal) )))) + (pointer_expression "*(int *)((int)&(reloc.p_)->r_addend + 4)" * (cast_expression "(int *)((int)&(reloc.p_)->r_addend + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(reloc.p_)->r_addend + 4)" ( (binary_expression "(int)&(reloc.p_)->r_addend + 4" (cast_expression "(int)&(reloc.p_)->r_addend" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(reloc.p_)->r_addend" & (field_expression "(reloc.p_)->r_addend" (parenthesized_expression "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) )) -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar35,(uint)(reloc.p_)->r_addend)" identifier (argument_list "(uVar35,(uint)(reloc.p_)->r_addend)" ( identifier , (field_expression "(uint)(reloc.p_)->r_addend" (call_expression "(uint)(reloc.p_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) ))) -> field_identifier) )))))) ;) (if_statement "if ((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }\n              else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }" if (parenthesized_expression "((*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3))" ( (binary_expression "(*pp_Var4)[0xf]._M_nxt ==\n                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" (field_expression "(*pp_Var4)[0xf]._M_nxt" (subscript_expression "(*pp_Var4)[0xf]" (parenthesized_expression "(*pp_Var4)" ( (pointer_expression "*pp_Var4" * identifier) )) [ number_literal ]) . field_identifier) == (cast_expression "(_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" ( (binary_expression "(int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3" (binary_expression "(int)&__DT_REL[0x26b4].r_info + unaff_EDI" (cast_expression "(int)&__DT_REL[0x26b4].r_info" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_REL[0x26b4].r_info" & (field_expression "__DT_REL[0x26b4].r_info" (subscript_expression "__DT_REL[0x26b4]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) )))) )) (compound_statement "{\n                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);\n                in_stack_fffffd98 = pLVar19;\n              }" { (ERROR "EVar38 = elfcpp::Elf_file<64,_false,_gold::" (comma_expression "EVar38 = elfcpp::Elf_file<64,_false,_gold" (binary_expression "EVar38 = elfcpp::Elf_file<64" (assignment_expression "EVar38 = elfcpp" identifier = identifier) (ERROR "::Elf_file" : : identifier) < number_literal) , (comma_expression "_false,_gold" identifier , identifier)) : :) (expression_statement "Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19);" (binary_expression "Object>::section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19)" identifier > (ERROR "::" : :) (call_expression "section_size\n                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19)" identifier (argument_list "((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),\n                                    (uint)pLVar19)" ( (call_expression "(Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24)" (parenthesized_expression "(Elf_file<64,_false,_gold::Object> *)" ( (ERROR "Elf_file<64,_false,_gold::" (comma_expression "Elf_file<64,_false,_gold" (binary_expression "Elf_file<64" identifier < number_literal) , (comma_expression "_false,_gold" identifier , identifier)) : :) (binary_expression "Object> *" identifier > (pointer_expression "*" * identifier)) )) (argument_list "(pp_Var4 + 0x24)" ( (binary_expression "pp_Var4 + 0x24" identifier + number_literal) ))) , (cast_expression "(uint)pLVar19" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "in_stack_fffffd98 = pLVar19;" (assignment_expression "in_stack_fffffd98 = pLVar19" identifier = identifier) ;) }) (else_clause "else {\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }" else (compound_statement "{\n                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);\n                in_stack_fffffd98 = pLVar19;\n              }" { (expression_statement "EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);" (assignment_expression "EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4)" identifier = (call_expression "(*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4)" (parenthesized_expression "(*(code *)(*pp_Var4)[0xf]._M_nxt)" ( (pointer_expression "*(code *)(*pp_Var4)[0xf]._M_nxt" * (cast_expression "(code *)(*pp_Var4)[0xf]._M_nxt" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(*pp_Var4)[0xf]._M_nxt" (subscript_expression "(*pp_Var4)[0xf]" (parenthesized_expression "(*pp_Var4)" ( (pointer_expression "*pp_Var4" * identifier) )) [ number_literal ]) . field_identifier))) )) (argument_list "(pp_Var4)" ( identifier )))) ;) (expression_statement "in_stack_fffffd98 = pLVar19;" (assignment_expression "in_stack_fffffd98 = pLVar19" identifier = identifier) ;) }))) (expression_statement "uVar25 = (uint)(EVar38 >> 0x20);" (assignment_expression "uVar25 = (uint)(EVar38 >> 0x20)" identifier = (call_expression "(uint)(EVar38 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(EVar38 >> 0x20)" ( (binary_expression "EVar38 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if ((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))\n              {\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }" if (parenthesized_expression "((data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))" ( (binary_expression "(data_shndx_00 != (Layout *)0x32) &&\n                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38))" (parenthesized_expression "(data_shndx_00 != (Layout *)0x32)" ( (binary_expression "data_shndx_00 != (Layout *)0x32" identifier != (cast_expression "(Layout *)0x32" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38))" ( (binary_expression "uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)" (binary_expression "uVar18 < uVar25" identifier < identifier) || (binary_expression "uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)" (binary_expression "uVar18 - uVar25" identifier - identifier) < (call_expression "(uint)(uVar35 + (int)EVar14 < (uint)EVar38)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar35 + (int)EVar14 < (uint)EVar38)" ( (binary_expression "uVar35 + (int)EVar14 < (uint)EVar38" (binary_expression "uVar35 + (int)EVar14" identifier + (cast_expression "(int)EVar14" ( (type_descriptor "int" primitive_type) ) identifier)) < (cast_expression "(uint)EVar38" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ))) )) (compound_statement "{\n                if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }\n                in_stack_fffffda0 = (Symbol *)0x8e698;\n                Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));\n              }" { (if_statement "if (data_shndx_00 == (Layout *)0x40) {\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }" if (parenthesized_expression "(data_shndx_00 == (Layout *)0x40)" ( (binary_expression "data_shndx_00 == (Layout *)0x40" identifier == (cast_expression "(Layout *)0x40" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  in_stack_fffffd9c = (Layout *)&slen;\n                  in_stack_fffffda0 = (Symbol *)0x0;\n                  in_stack_fffffd98 = (Layout *)data_shndx;\n                  puVar27 = gold::Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);\n                  iVar20 = (int)(reloc.p_)->r_offset;\n                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }\n                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;\n                }" { (expression_statement "in_stack_fffffd9c = (Layout *)&slen;" (assignment_expression "in_stack_fffffd9c = (Layout *)&slen" identifier = (cast_expression "(Layout *)&slen" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&slen" & identifier))) ;) (expression_statement "in_stack_fffffda0 = (Symbol *)0x0;" (assignment_expression "in_stack_fffffda0 = (Symbol *)0x0" identifier = (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_stack_fffffd98 = (Layout *)data_shndx;" (assignment_expression "in_stack_fffffd98 = (Layout *)data_shndx" identifier = (cast_expression "(Layout *)data_shndx" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "puVar27 = gold::" (assignment_expression "puVar27 = gold" identifier = identifier) : :) (labeled_statement "Object::section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);" statement_identifier : (ERROR ":" :) (expression_statement "section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false);" (call_expression "section_contents\n                                      ((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false)" identifier (argument_list "((Object *)object,data_shndx,\n                                       (section_size_type *)in_stack_fffffd9c,false)" ( (cast_expression "(Object *)object" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(section_size_type *)in_stack_fffffd9c" ( (type_descriptor "section_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , false ))) ;)) (expression_statement "iVar20 = (int)(reloc.p_)->r_offset;" (assignment_expression "iVar20 = (int)(reloc.p_)->r_offset" identifier = (cast_expression "(int)(reloc.p_)->r_offset" ( (type_descriptor "int" primitive_type) ) (field_expression "(reloc.p_)->r_offset" (parenthesized_expression "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) )) -> field_identifier))) ;) (if_statement "if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }" if (parenthesized_expression "(*(int *)((int)&(reloc.p_)->r_offset + 4) != 0)" ( (binary_expression "*(int *)((int)&(reloc.p_)->r_offset + 4) != 0" (pointer_expression "*(int *)((int)&(reloc.p_)->r_offset + 4)" * (cast_expression "(int *)((int)&(reloc.p_)->r_offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(reloc.p_)->r_offset + 4)" ( (binary_expression "(int)&(reloc.p_)->r_offset + 4" (cast_expression "(int)&(reloc.p_)->r_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(reloc.p_)->r_offset" & (field_expression "(reloc.p_)->r_offset" (parenthesized_expression "(reloc.p_)" ( (field_expression "reloc.p_" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));\n                  }" { comment (labeled_statement "gold::do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));" (call_expression "do_gold_unreachable\n                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab))" identifier (argument_list "((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab))" ( (cast_expression "(char *)(unaff_EDI + 0x2697a3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2697a3)" ( (binary_expression "unaff_EDI + 0x2697a3" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x2685ab)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2685ab)" ( (binary_expression "unaff_EDI + 0x2685ab" identifier + number_literal) ))) ))) ;)) })) (if_statement "if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))\n                  goto LAB_0008e248;" if (parenthesized_expression "((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))" ( (binary_expression "(iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8)" (parenthesized_expression "(iVar20 + 3U < slen)" ( (binary_expression "iVar20 + 3U < slen" (binary_expression "iVar20 + 3U" identifier + number_literal) < identifier) )) && (parenthesized_expression "((puVar27[iVar20 + 3] & 0xfc) == 0xe8)" ( (binary_expression "(puVar27[iVar20 + 3] & 0xfc) == 0xe8" (parenthesized_expression "(puVar27[iVar20 + 3] & 0xfc)" ( (binary_expression "puVar27[iVar20 + 3] & 0xfc" (subscript_expression "puVar27[iVar20 + 3]" identifier [ (binary_expression "iVar20 + 3" identifier + number_literal) ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0008e248;" goto statement_identifier ;)) })) (expression_statement "in_stack_fffffda0 = (Symbol *)0x8e698;" (assignment_expression "in_stack_fffffda0 = (Symbol *)0x8e698" identifier = (cast_expression "(Symbol *)0x8e698" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));" (comma_expression "Powerpc_relobj<64,_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8))" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (binary_expression "_false>::set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8))" identifier > (ERROR "::" : :) (call_expression "set_no_toc_opt\n                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8))" identifier (argument_list "(in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8))" ( identifier , (call_expression "CONCAT44(in_stack_fffffdac,in_stack_fffffda8)" identifier (argument_list "(in_stack_fffffdac,in_stack_fffffda8)" ( identifier , identifier ))) ))))) ;) })) })) }))) (labeled_statement "LAB_0008e248:\n          puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);" statement_identifier : (expression_statement "puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2);" (assignment_expression "puVar21 = (undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2)" identifier = (cast_expression "(undefined1 *)\n                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2)" ( (binary_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent + 2" (cast_expression "(int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent" & (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header._M_parent" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                           _M_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header" (field_expression "data_shndx_00[-1].gnu_properties_._M_t._M_impl" (field_expression "data_shndx_00[-1].gnu_properties_._M_t" (field_expression "data_shndx_00[-1].gnu_properties_" (subscript_expression "data_shndx_00[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) ;)) (if_statement "if (puVar21 < (undefined1 *)0x4e) {\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }" if (parenthesized_expression "(puVar21 < (undefined1 *)0x4e)" ( (binary_expression "puVar21 < (undefined1 *)0x4e" identifier < (cast_expression "(undefined1 *)0x4e" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();\n            return;\n          }" { comment comment (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37)" ( (binary_expression "*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37" (pointer_expression "*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25fa7b + (int)puVar21 * 4)" ( (binary_expression "unaff_EDI + 0x25fa7b + (int)puVar21 * 4" (binary_expression "unaff_EDI + 0x25fa7b" identifier + number_literal) + (binary_expression "(int)puVar21 * 4" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }))) }) (ERROR "_L18143:\n      local_1ec = local_1ec + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_1ec" identifier : identifier = identifier + number_literal ; identifier = identifier + number_literal ; } while ( identifier != identifier) )))))) ; } return ; })
(translation_unit "void FUN_0008dc10(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 extraout_ECX;\n  undefined4 *puVar10;\n  int iVar11;\n  uint extraout_ECX_00;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  int unaff_EDI;\n  int iVar16;\n  undefined8 uVar17;\n  int aiStackY_280 [5];\n  undefined1 auStack_25c [8];\n  int local_254;\n  int local_250;\n  int local_248;\n  int local_244;\n  undefined4 *local_240;\n  undefined4 *local_23c;\n  undefined4 *local_238;\n  int local_234;\n  int local_230;\n  int local_22c;\n  int local_224;\n  int local_220;\n  uint local_21c;\n  int local_218;\n  uint local_214;\n  int local_210;\n  char local_20c;\n  int local_204;\n  undefined1 *local_200;\n  char local_1f9;\n  uint local_1f8;\n  uint local_1f4;\n  uint local_1f0;\n  int local_1ec;\n  uint local_1e8;\n  int *local_1d8 [2];\n  uint local_1d0 [25];\n  int local_16c;\n  int local_168;\n  undefined4 local_164;\n  undefined4 local_160;\n  undefined4 local_15c;\n  undefined1 local_158;\n  undefined1 *local_154 [2];\n  undefined1 local_14c [268];\n  int local_40 [12];\n  \n  FUN_000b484e();\n  iVar16 = unaff_EDI + 0x3863e7;\n  local_1f9 = param_10;\n  if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }\n  puVar15 = auStack_25c;\n  if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }\n  local_16c = 0;\n  local_168 = 0;\n  local_164 = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_158 = 0;\n  if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0008dc10(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 extraout_ECX;\n  undefined4 *puVar10;\n  int iVar11;\n  uint extraout_ECX_00;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  int unaff_EDI;\n  int iVar16;\n  undefined8 uVar17;\n  int aiStackY_280 [5];\n  undefined1 auStack_25c [8];\n  int local_254;\n  int local_250;\n  int local_248;\n  int local_244;\n  undefined4 *local_240;\n  undefined4 *local_23c;\n  undefined4 *local_238;\n  int local_234;\n  int local_230;\n  int local_22c;\n  int local_224;\n  int local_220;\n  uint local_21c;\n  int local_218;\n  uint local_214;\n  int local_210;\n  char local_20c;\n  int local_204;\n  undefined1 *local_200;\n  char local_1f9;\n  uint local_1f8;\n  uint local_1f4;\n  uint local_1f0;\n  int local_1ec;\n  uint local_1e8;\n  int *local_1d8 [2];\n  uint local_1d0 [25];\n  int local_16c;\n  int local_168;\n  undefined4 local_164;\n  undefined4 local_160;\n  undefined4 local_15c;\n  undefined1 local_158;\n  undefined1 *local_154 [2];\n  undefined1 local_14c [268];\n  int local_40 [12];\n  \n  FUN_000b484e();\n  iVar16 = unaff_EDI + 0x3863e7;\n  local_1f9 = param_10;\n  if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }\n  puVar15 = auStack_25c;\n  if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }\n  local_16c = 0;\n  local_168 = 0;\n  local_164 = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_158 = 0;\n  if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0008dc10(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "char param_10" primitive_type identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "int param_12" primitive_type identifier) ))) (compound_statement "{\n  code *pcVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 extraout_ECX;\n  undefined4 *puVar10;\n  int iVar11;\n  uint extraout_ECX_00;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  int unaff_EDI;\n  int iVar16;\n  undefined8 uVar17;\n  int aiStackY_280 [5];\n  undefined1 auStack_25c [8];\n  int local_254;\n  int local_250;\n  int local_248;\n  int local_244;\n  undefined4 *local_240;\n  undefined4 *local_23c;\n  undefined4 *local_238;\n  int local_234;\n  int local_230;\n  int local_22c;\n  int local_224;\n  int local_220;\n  uint local_21c;\n  int local_218;\n  uint local_214;\n  int local_210;\n  char local_20c;\n  int local_204;\n  undefined1 *local_200;\n  char local_1f9;\n  uint local_1f8;\n  uint local_1f4;\n  uint local_1f0;\n  int local_1ec;\n  uint local_1e8;\n  int *local_1d8 [2];\n  uint local_1d0 [25];\n  int local_16c;\n  int local_168;\n  undefined4 local_164;\n  undefined4 local_160;\n  undefined4 local_15c;\n  undefined1 local_158;\n  undefined1 *local_154 [2];\n  undefined1 local_14c [268];\n  int local_40 [12];\n  \n  FUN_000b484e();\n  iVar16 = unaff_EDI + 0x3863e7;\n  local_1f9 = param_10;\n  if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }\n  puVar15 = auStack_25c;\n  if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }\n  local_16c = 0;\n  local_168 = 0;\n  local_164 = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_158 = 0;\n  if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }\n  return;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint extraout_ECX_00;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined8 uVar17;" type_identifier identifier ;) (declaration "int aiStackY_280 [5];" primitive_type (array_declarator "aiStackY_280 [5]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_25c [8];" type_identifier (array_declarator "auStack_25c [8]" identifier [ number_literal ]) ;) (declaration "int local_254;" primitive_type identifier ;) (declaration "int local_250;" primitive_type identifier ;) (declaration "int local_248;" primitive_type identifier ;) (declaration "int local_244;" primitive_type identifier ;) (declaration "undefined4 *local_240;" type_identifier (pointer_declarator "*local_240" * identifier) ;) (declaration "undefined4 *local_23c;" type_identifier (pointer_declarator "*local_23c" * identifier) ;) (declaration "undefined4 *local_238;" type_identifier (pointer_declarator "*local_238" * identifier) ;) (declaration "int local_234;" primitive_type identifier ;) (declaration "int local_230;" primitive_type identifier ;) (declaration "int local_22c;" primitive_type identifier ;) (declaration "int local_224;" primitive_type identifier ;) (declaration "int local_220;" primitive_type identifier ;) (declaration "uint local_21c;" type_identifier identifier ;) (declaration "int local_218;" primitive_type identifier ;) (declaration "uint local_214;" type_identifier identifier ;) (declaration "int local_210;" primitive_type identifier ;) (declaration "char local_20c;" primitive_type identifier ;) (declaration "int local_204;" primitive_type identifier ;) (declaration "undefined1 *local_200;" type_identifier (pointer_declarator "*local_200" * identifier) ;) (declaration "char local_1f9;" primitive_type identifier ;) (declaration "uint local_1f8;" type_identifier identifier ;) (declaration "uint local_1f4;" type_identifier identifier ;) (declaration "uint local_1f0;" type_identifier identifier ;) (declaration "int local_1ec;" primitive_type identifier ;) (declaration "uint local_1e8;" type_identifier identifier ;) (declaration "int *local_1d8 [2];" primitive_type (pointer_declarator "*local_1d8 [2]" * (array_declarator "local_1d8 [2]" identifier [ number_literal ])) ;) (declaration "uint local_1d0 [25];" type_identifier (array_declarator "local_1d0 [25]" identifier [ number_literal ]) ;) (declaration "int local_16c;" primitive_type identifier ;) (declaration "int local_168;" primitive_type identifier ;) (declaration "undefined4 local_164;" type_identifier identifier ;) (declaration "undefined4 local_160;" type_identifier identifier ;) (declaration "undefined4 local_15c;" type_identifier identifier ;) (declaration "undefined1 local_158;" type_identifier identifier ;) (declaration "undefined1 *local_154 [2];" type_identifier (pointer_declarator "*local_154 [2]" * (array_declarator "local_154 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_14c [268];" type_identifier (array_declarator "local_14c [268]" identifier [ number_literal ]) ;) (declaration "int local_40 [12];" primitive_type (array_declarator "local_40 [12]" identifier [ number_literal ]) ;) (expression_statement "FUN_000b484e();" (call_expression "FUN_000b484e()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = unaff_EDI + 0x3863e7;" (assignment_expression "iVar16 = unaff_EDI + 0x3863e7" identifier = (binary_expression "unaff_EDI + 0x3863e7" identifier + number_literal)) ;) (expression_statement "local_1f9 = param_10;" (assignment_expression "local_1f9 = param_10" identifier = identifier) ;) (if_statement "if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x9e) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x9e) == '\0'" (pointer_expression "*(char *)(param_1 + 0x9e)" * (cast_expression "(char *)(param_1 + 0x9e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9e)" ( (binary_expression "param_1 + 0x9e" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 8) & 2) != 0)" ( (binary_expression "(*(byte *)(param_1 + 8) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 8) & 2)" ( (binary_expression "*(byte *)(param_1 + 8) & 2" (pointer_expression "*(byte *)(param_1 + 8)" * (cast_expression "(byte *)(param_1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }" { (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }" { (expression_statement "FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);" (call_expression "FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX)" identifier (argument_list "(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX)" ( (binary_expression "unaff_EDI + 0x254654" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x26878f" identifier + number_literal) , identifier ))) ;) })) (expression_statement "cVar4 = *(char *)(iVar8 + 0x2b60);" (assignment_expression "cVar4 = *(char *)(iVar8 + 0x2b60)" identifier = (pointer_expression "*(char *)(iVar8 + 0x2b60)" * (cast_expression "(char *)(iVar8 + 0x2b60)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2b60)" ( (binary_expression "iVar8 + 0x2b60" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar8 + 0x2b60) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x2b60) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x2b60)" * (cast_expression "(char *)(iVar8 + 0x2b60)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2b60)" ( (binary_expression "iVar8 + 0x2b60" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }" { (if_statement "if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }" if (parenthesized_expression "(*(char *)(iVar8 + 0x2b61) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x2b61) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x2b61)" * (cast_expression "(char *)(iVar8 + 0x2b61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2b61)" ( (binary_expression "iVar8 + 0x2b61" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          cVar4 = '\0';\n        }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }" else (compound_statement "{\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }" { (expression_statement "local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));" (assignment_expression "local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61))" identifier = (call_expression "CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61))" identifier (argument_list "(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61))" ( (field_expression "local_1e8._1_3_" identifier . field_identifier) , (pointer_expression "*(char *)(iVar8 + 0x2b61)" * (cast_expression "(char *)(iVar8 + 0x2b61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2b61)" ( (binary_expression "iVar8 + 0x2b61" identifier + number_literal) )))) )))) ;) (expression_statement "iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);" (assignment_expression "iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0)" identifier = (call_expression "FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0)" identifier (argument_list "(param_2,&UNK_002694d6 + unaff_EDI,0)" ( identifier , (binary_expression "&UNK_002694d6 + unaff_EDI" (pointer_expression "&UNK_002694d6" & identifier) + identifier) , number_literal )))) ;) (expression_statement "cVar4 = (char)local_1e8;" (assignment_expression "cVar4 = (char)local_1e8" identifier = (cast_expression "(char)local_1e8" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }" { (expression_statement "uVar7 = gettext(unaff_EDI + 0x269c6f);" (assignment_expression "uVar7 = gettext(unaff_EDI + 0x269c6f)" identifier = (call_expression "gettext(unaff_EDI + 0x269c6f)" identifier (argument_list "(unaff_EDI + 0x269c6f)" ( (binary_expression "unaff_EDI + 0x269c6f" identifier + number_literal) )))) ;) (expression_statement "FUN_000d1360(uVar7);" (call_expression "FUN_000d1360(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "cVar4 = (char)local_1e8;" (assignment_expression "cVar4 = (char)local_1e8" identifier = (cast_expression "(char)local_1e8" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) }))) })) })) (expression_statement "*(char *)(param_1 + 0x9d) = cVar4;" (assignment_expression "*(char *)(param_1 + 0x9d) = cVar4" (pointer_expression "*(char *)(param_1 + 0x9d)" * (cast_expression "(char *)(param_1 + 0x9d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9d)" ( (binary_expression "param_1 + 0x9d" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x9e) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x9e) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x9e)" * (cast_expression "(undefined1 *)(param_1 + 0x9e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9e)" ( (binary_expression "param_1 + 0x9e" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "puVar15 = auStack_25c;" (assignment_expression "puVar15 = auStack_25c" identifier = identifier) ;) (if_statement "if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }" if (parenthesized_expression "(param_6 == 9)" ( (binary_expression "param_6 == 9" identifier == number_literal) )) (compound_statement "{\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }" { (expression_statement "iVar16 = param_4[1];" (assignment_expression "iVar16 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = gettext(unaff_EDI + 0x269cc7);" (assignment_expression "uVar7 = gettext(unaff_EDI + 0x269cc7)" identifier = (call_expression "gettext(unaff_EDI + 0x269cc7)" identifier (argument_list "(unaff_EDI + 0x269cc7)" ( (binary_expression "unaff_EDI + 0x269cc7" identifier + number_literal) )))) ;) (expression_statement "FUN_000d1330(uVar7,iVar16);" (call_expression "FUN_000d1330(uVar7,iVar16)" identifier (argument_list "(uVar7,iVar16)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;) (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" identifier = number_literal) ;) (expression_statement "local_164 = 0;" (assignment_expression "local_164 = 0" identifier = number_literal) ;) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (expression_statement "local_15c = 0;" (assignment_expression "local_15c = 0" identifier = number_literal) ;) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" identifier = number_literal) ;) (if_statement "if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }" { (expression_statement "local_1ec = 0;" (assignment_expression "local_1ec = 0" identifier = number_literal) ;) (expression_statement "local_210 = (param_5 >> 5) << 2;" (assignment_expression "local_210 = (param_5 >> 5) << 2" identifier = (binary_expression "(param_5 >> 5) << 2" (parenthesized_expression "(param_5 >> 5)" ( (binary_expression "param_5 >> 5" identifier >> number_literal) )) << number_literal)) ;) (expression_statement "local_214 = 1 << ((byte)param_5 & 0x1f);" (assignment_expression "local_214 = 1 << ((byte)param_5 & 0x1f)" identifier = (binary_expression "1 << ((byte)param_5 & 0x1f)" number_literal << (parenthesized_expression "((byte)param_5 & 0x1f)" ( (binary_expression "(byte)param_5 & 0x1f" (cast_expression "(byte)param_5" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_218 = unaff_EDI + 0x3868cf;" (assignment_expression "local_218 = unaff_EDI + 0x3868cf" identifier = (binary_expression "unaff_EDI + 0x3868cf" identifier + number_literal)) ;) (expression_statement "local_204 = local_218;" (assignment_expression "local_204 = local_218" identifier = identifier) ;) (do_statement "do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);" do (compound_statement "{\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    }" { (expression_statement "local_1d8[0] = param_7;" (assignment_expression "local_1d8[0] = param_7" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }" if (parenthesized_expression "(local_1f9 != '\0')" ( (binary_expression "local_1f9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }" { (expression_statement "*(int *)(puVar15 + -0x10) = param_7[1];" (assignment_expression "*(int *)(puVar15 + -0x10) = param_7[1]" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (subscript_expression "param_7[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(puVar15 + -0x14) = *param_7;" (assignment_expression "*(int *)(puVar15 + -0x14) = *param_7" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "*(uint *)(puVar15 + -0x18) = param_5;" (assignment_expression "*(uint *)(puVar15 + -0x18) = param_5" (pointer_expression "*(uint *)(puVar15 + -0x18)" * (cast_expression "(uint *)(puVar15 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(int **)(puVar15 + -0x1c)" * (cast_expression "(int **)(puVar15 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = param_9;" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = param_9" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8dea8;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8dea8" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar4 = FUN_00163e50();" (assignment_expression "cVar4 = FUN_00163e50()" identifier = (call_expression "FUN_00163e50()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar4 != '\0') goto LAB_0008dd2e;" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008dd2e;" goto statement_identifier ;)) (goto_statement "goto LAB_0008dda8;" goto statement_identifier ;) })) (labeled_statement "LAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];" statement_identifier : (expression_statement "local_1e8 = local_1d8[0][2];" (assignment_expression "local_1e8 = local_1d8[0][2]" identifier = (subscript_expression "local_1d8[0][2]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;)) (expression_statement "uVar12 = local_1d8[0][3];" (assignment_expression "uVar12 = local_1d8[0][3]" identifier = (subscript_expression "local_1d8[0][3]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;) (if_statement "if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }" if (parenthesized_expression "(uVar12 < param_11)" ( (binary_expression "uVar12 < param_11" identifier < identifier) )) (compound_statement "{\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }" { (if_statement "if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }" if (parenthesized_expression "(param_12 == 0)" ( (binary_expression "param_12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }" { (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377" (pointer_expression "*(int *)(puVar15 + -8)" * (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x268377" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x4d;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x4d" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;" (assignment_expression "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI" (pointer_expression "*(undefined **)(puVar15 + -0x10)" * (cast_expression "(undefined **)(puVar15 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "&UNK_002693fc + unaff_EDI" (pointer_expression "&UNK_002693fc" & identifier) + identifier)) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_000901d5;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_000901d5" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_000901d5" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_40[0] = param_12 + uVar12 * 0x18;" (assignment_expression "local_40[0] = param_12 + uVar12 * 0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (binary_expression "param_12 + uVar12 * 0x18" identifier + (binary_expression "uVar12 * 0x18" identifier * number_literal))) ;) (expression_statement "uVar6 = (uint)*(ushort *)(local_40[0] + 6);" (assignment_expression "uVar6 = (uint)*(ushort *)(local_40[0] + 6)" identifier = (binary_expression "(uint)*(ushort *)(local_40[0] + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(local_40[0] + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[0] + 6)" ( (binary_expression "local_40[0] + 6" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }" if (parenthesized_expression "(uVar6 < 0xff00)" ( (binary_expression "uVar6 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }" { (labeled_statement "LAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;" statement_identifier : (if_statement "if (uVar6 == 0) goto LAB_0008dd74;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008dd74;" goto statement_identifier ;))) (expression_statement "local_1f4 = param_4[0xf];" (assignment_expression "local_1f4 = param_4[0xf]" identifier = (subscript_expression "param_4[0xf]" identifier [ number_literal ])) ;) (if_statement "if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }" if (parenthesized_expression "((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6)" ( (binary_expression "(uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6" (call_expression "(uint)((int)(local_1f4 - param_4[0xe]) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(local_1f4 - param_4[0xe]) >> 2)" ( (binary_expression "(int)(local_1f4 - param_4[0xe]) >> 2" (cast_expression "(int)(local_1f4 - param_4[0xe])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_1f4 - param_4[0xe])" ( (binary_expression "local_1f4 - param_4[0xe]" identifier - (subscript_expression "param_4[0xe]" identifier [ number_literal ])) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }" { (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x26868b" (pointer_expression "*(int *)(puVar15 + -8)" * (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x26868b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x50b;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x50b" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x26922f" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_000902f6;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_000902f6" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_000902f6" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;" if (parenthesized_expression "(*(int *)(param_4[0xe] + uVar6 * 4) != 0)" ( (binary_expression "*(int *)(param_4[0xe] + uVar6 * 4) != 0" (pointer_expression "*(int *)(param_4[0xe] + uVar6 * 4)" * (cast_expression "(int *)(param_4[0xe] + uVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[0xe] + uVar6 * 4)" ( (binary_expression "param_4[0xe] + uVar6 * 4" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) + (binary_expression "uVar6 * 4" identifier * number_literal)) )))) != number_literal) )) (goto_statement "goto LAB_0008dd74;" goto statement_identifier ;)) (expression_statement "*(uint *)(puVar15 + -8) = uVar6;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar6" (pointer_expression "*(uint *)(puVar15 + -8)" * (cast_expression "(uint *)(puVar15 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0xc) = param_4;" (assignment_expression "*(int **)(puVar15 + -0xc) = param_4" (pointer_expression "*(int **)(puVar15 + -0xc)" * (cast_expression "(int **)(puVar15 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = param_2" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8de7a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8de7a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = FUN_001e6ec0();" (assignment_expression "uVar12 = FUN_001e6ec0()" identifier = (call_expression "FUN_001e6ec0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar12 = (uVar12 ^ 1) & 0xff;" (assignment_expression "uVar12 = (uVar12 ^ 1) & 0xff" identifier = (binary_expression "(uVar12 ^ 1) & 0xff" (parenthesized_expression "(uVar12 ^ 1)" ( (binary_expression "uVar12 ^ 1" identifier ^ number_literal) )) & number_literal)) ;) }) (else_clause "else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }" else (compound_statement "{\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }" { (if_statement "if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }" if (parenthesized_expression "(uVar6 == 0xffff)" ( (binary_expression "uVar6 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }" { (expression_statement "iVar8 = param_4[0xc];" (assignment_expression "iVar8 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }" { (expression_statement "iVar8 = *param_4;" (assignment_expression "iVar8 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*(int **)(puVar15 + -0x10) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x10) = param_4" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar8 + 0x6c);" (assignment_expression "pcVar1 = *(code **)(iVar8 + 0x6c)" identifier = (pointer_expression "*(code **)(iVar8 + 0x6c)" * (cast_expression "(code **)(iVar8 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x6c)" ( (binary_expression "iVar8 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e4c6" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = (*pcVar1)();" (assignment_expression "iVar8 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "param_4[0xc] = iVar8;" (assignment_expression "param_4[0xc] = iVar8" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "*(uint *)(puVar15 + -8) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar12" (pointer_expression "*(uint *)(puVar15 + -8)" * (cast_expression "(uint *)(puVar15 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0xc) = param_4;" (assignment_expression "*(int **)(puVar15 + -0xc) = param_4" (pointer_expression "*(int **)(puVar15 + -0xc)" * (cast_expression "(int **)(puVar15 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8de35;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8de35" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = FUN_00121c60();" (assignment_expression "uVar6 = FUN_00121c60()" identifier = (call_expression "FUN_00121c60()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0008de38;" goto statement_identifier ;) })) (labeled_statement "LAB_0008dd74:\n          uVar12 = 0;" statement_identifier : (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;)) }))) (expression_statement "*(uint *)(puVar15 + -4) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -4) = uVar12" (pointer_expression "*(uint *)(puVar15 + -4)" * (cast_expression "(uint *)(puVar15 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -8) = local_40;" (assignment_expression "*(int **)(puVar15 + -8) = local_40" (pointer_expression "*(int **)(puVar15 + -8)" * (cast_expression "(int **)(puVar15 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar15 + -0xc) = local_1e8;" (assignment_expression "*(uint *)(puVar15 + -0xc) = local_1e8" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)(puVar15 + -0x10) = local_1d8;" (assignment_expression "*(int ***)(puVar15 + -0x10) = local_1d8" (pointer_expression "*(int ***)(puVar15 + -0x10)" * (cast_expression "(int ***)(puVar15 + -0x10)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = param_9;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = param_9" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar15 + -0x18) = param_5;" (assignment_expression "*(uint *)(puVar15 + -0x18) = param_5" (pointer_expression "*(uint *)(puVar15 + -0x18)" * (cast_expression "(uint *)(puVar15 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(int **)(puVar15 + -0x1c)" * (cast_expression "(int **)(puVar15 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x20) = param_1;" (assignment_expression "*(int *)(puVar15 + -0x20) = param_1" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8dda5;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8dda5" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008c5a0();" (call_expression "FUN_0008c5a0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }" else (compound_statement "{\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }" { (if_statement "if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }" if (parenthesized_expression "(uVar12 < (uint)param_4[0x2c])" ( (binary_expression "uVar12 < (uint)param_4[0x2c]" identifier < (cast_expression "(uint)param_4[0x2c]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0x2c]" identifier [ number_literal ]))) )) (compound_statement "{\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }" { (labeled_statement "LAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;" statement_identifier : (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377" (pointer_expression "*(int *)(puVar15 + -8)" * (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x268377" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x6a;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x6a" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;" (assignment_expression "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI" (pointer_expression "*(undefined **)(puVar15 + -0x10)" * (cast_expression "(undefined **)(puVar15 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "&UNK_002693fc + unaff_EDI" (pointer_expression "&UNK_002693fc" & identifier) + identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x9024a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x9024a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar12 = uVar12 - param_4[0x2c];" (assignment_expression "uVar12 = uVar12 - param_4[0x2c]" identifier = (binary_expression "uVar12 - param_4[0x2c]" identifier - (subscript_expression "param_4[0x2c]" identifier [ number_literal ]))) ;) (expression_statement "local_1f4 = param_4[0x30];" (assignment_expression "local_1f4 = param_4[0x30]" identifier = (subscript_expression "param_4[0x30]" identifier [ number_literal ])) ;) (if_statement "if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }" if (parenthesized_expression "((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12)" ( (binary_expression "(uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12" (call_expression "(uint)((int)(local_1f4 - param_4[0x2f]) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(local_1f4 - param_4[0x2f]) >> 2)" ( (binary_expression "(int)(local_1f4 - param_4[0x2f]) >> 2" (cast_expression "(int)(local_1f4 - param_4[0x2f])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_1f4 - param_4[0x2f])" ( (binary_expression "local_1f4 - param_4[0x2f]" identifier - (subscript_expression "param_4[0x2f]" identifier [ number_literal ])) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }" { (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x26870b" (pointer_expression "*(int *)(puVar15 + -8)" * (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x26870b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x26922f" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_00090281;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_00090281" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_00090281" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);" (assignment_expression "uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4)" identifier = (pointer_expression "*(uint *)(param_4[0x2f] + uVar12 * 4)" * (cast_expression "(uint *)(param_4[0x2f] + uVar12 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[0x2f] + uVar12 * 4)" ( (binary_expression "param_4[0x2f] + uVar12 * 4" (subscript_expression "param_4[0x2f]" identifier [ number_literal ]) + (binary_expression "uVar12 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (uVar12 == 0) goto LAB_00090230;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00090230;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }" if (parenthesized_expression "((*(byte *)(uVar12 + 0x2a) & 0x10) == 0)" ( (binary_expression "(*(byte *)(uVar12 + 0x2a) & 0x10) == 0" (parenthesized_expression "(*(byte *)(uVar12 + 0x2a) & 0x10)" ( (binary_expression "*(byte *)(uVar12 + 0x2a) & 0x10" (pointer_expression "*(byte *)(uVar12 + 0x2a)" * (cast_expression "(byte *)(uVar12 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x2a)" ( (binary_expression "uVar12 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }" { (expression_statement "iVar8 = local_16c;" (assignment_expression "iVar8 = local_16c" identifier = identifier) ;) (if_statement "if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;" if (parenthesized_expression "((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77))))" ( (binary_expression "(((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))" (parenthesized_expression "(((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d))" ( (binary_expression "((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)" (parenthesized_expression "((local_1e8 - 10 & 0xfffffff7) != 0)" ( (binary_expression "(local_1e8 - 10 & 0xfffffff7) != 0" (parenthesized_expression "(local_1e8 - 10 & 0xfffffff7)" ( (binary_expression "local_1e8 - 10 & 0xfffffff7" (binary_expression "local_1e8 - 10" identifier - number_literal) & number_literal) )) != number_literal) )) && (parenthesized_expression "(2 < local_1e8 - 0x1d)" ( (binary_expression "2 < local_1e8 - 0x1d" number_literal < (binary_expression "local_1e8 - 0x1d" identifier - number_literal)) ))) )) && (parenthesized_expression "((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))" ( (parenthesized_expression "(local_1e8 != 0x3c && (1 < local_1e8 - 0x77))" ( (binary_expression "local_1e8 != 0x3c && (1 < local_1e8 - 0x77)" (binary_expression "local_1e8 != 0x3c" identifier != number_literal) && (parenthesized_expression "(1 < local_1e8 - 0x77)" ( (binary_expression "1 < local_1e8 - 0x77" number_literal < (binary_expression "local_1e8 - 0x77" identifier - number_literal)) ))) )) ))) )) (goto_statement "goto LAB_0008df60;" goto statement_identifier ;)) (labeled_statement "LAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }" statement_identifier : (if_statement "if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }" if (parenthesized_expression "(*(uint *)(param_1 + 0xb0) != uVar12)" ( (binary_expression "*(uint *)(param_1 + 0xb0) != uVar12" (pointer_expression "*(uint *)(param_1 + 0xb0)" * (cast_expression "(uint *)(param_1 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }" { (if_statement "if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;" if (parenthesized_expression "(*(uint *)(param_1 + 0xb4) != uVar12)" ( (binary_expression "*(uint *)(param_1 + 0xb4) != uVar12" (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) != identifier) )) (goto_statement "goto LAB_0008df60;" goto statement_identifier ;)) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;) (if_statement "if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;" if (parenthesized_expression "((iVar8 != 1) && (iVar8 == 2))" ( (binary_expression "(iVar8 != 1) && (iVar8 == 2)" (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) && (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) ))) )) (goto_statement "goto LAB_0008dda8;" goto statement_identifier ;)) (goto_statement "goto LAB_0008e080;" goto statement_identifier ;) }))) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;) (expression_statement "uVar6 = uVar12;" (assignment_expression "uVar6 = uVar12" identifier = identifier) ;) (if_statement "if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;" if (parenthesized_expression "((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2))" ( (binary_expression "(iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)" (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)" ( (comma_expression "uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xb0)" identifier = (pointer_expression "*(uint *)(param_1 + 0xb0)" * (cast_expression "(uint *)(param_1 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) ))))) , (binary_expression "iVar8 != 2" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0008dfbd;" goto statement_identifier ;)) }) (else_clause "else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }" else (compound_statement "{\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }" { (expression_statement "*(uint *)(puVar15 + -0xc) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -0xc) = uVar12" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = param_2" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8df18;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8df18" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = FUN_001e6f30();" (assignment_expression "uVar12 = FUN_001e6f30()" identifier = (call_expression "FUN_001e6f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = local_16c;" (assignment_expression "iVar8 = local_16c" identifier = identifier) ;) (if_statement "if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;" if (parenthesized_expression "((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0))" ( (binary_expression "(((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)" (parenthesized_expression "(((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2))" ( (binary_expression "((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)" (parenthesized_expression "((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c))" ( (binary_expression "(((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)" (parenthesized_expression "(((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3))" ( (binary_expression "((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)" (parenthesized_expression "((local_1e8 - 10 & 0xfffffff7) == 0)" ( (binary_expression "(local_1e8 - 10 & 0xfffffff7) == 0" (parenthesized_expression "(local_1e8 - 10 & 0xfffffff7)" ( (binary_expression "local_1e8 - 10 & 0xfffffff7" (binary_expression "local_1e8 - 10" identifier - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_1e8 - 0x1d < 3)" ( (binary_expression "local_1e8 - 0x1d < 3" (binary_expression "local_1e8 - 0x1d" identifier - number_literal) < number_literal) ))) )) || (parenthesized_expression "(local_1e8 == 0x3c)" ( (binary_expression "local_1e8 == 0x3c" identifier == number_literal) ))) )) || (parenthesized_expression "(local_1e8 - 0x77 < 2)" ( (binary_expression "local_1e8 - 0x77 < 2" (binary_expression "local_1e8 - 0x77" identifier - number_literal) < number_literal) ))) )) && (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0008e048;" goto statement_identifier ;)) (labeled_statement "LAB_0008df60:\n          local_16c = 0;" statement_identifier : (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;)) (if_statement "if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" if (parenthesized_expression "((iVar8 == 0) || (local_168 == 0))" ( (binary_expression "(iVar8 == 0) || (local_168 == 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_168 == 0)" ( (binary_expression "local_168 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" { (expression_statement "uVar6 = *(uint *)(param_1 + 0xb0);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xb0)" identifier = (pointer_expression "*(uint *)(param_1 + 0xb0)" * (cast_expression "(uint *)(param_1 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" else (compound_statement "{\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" { (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x2699db" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8df91;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8df91" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = gettext();" (assignment_expression "uVar7 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = local_15c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = local_15c" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = local_160;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = local_160" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = local_164;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = local_164" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x20) = local_168;" (assignment_expression "*(int *)(puVar15 + -0x20) = local_168" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8dfb1" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000d1a30();" (call_expression "FUN_000d1a30()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar6 = *(uint *)(param_1 + 0xb0);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xb0)" identifier = (pointer_expression "*(uint *)(param_1 + 0xb0)" * (cast_expression "(uint *)(param_1 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);" statement_identifier : (expression_statement "local_1f4 = *(uint *)(param_1 + 0xb4);" (assignment_expression "local_1f4 = *(uint *)(param_1 + 0xb4)" identifier = (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) ))))) ;)) (if_statement "if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }" if (parenthesized_expression "((local_1f4 == 0) || (uVar6 != uVar12))" ( (binary_expression "(local_1f4 == 0) || (uVar6 != uVar12)" (parenthesized_expression "(local_1f4 == 0)" ( (binary_expression "local_1f4 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar6 != uVar12)" ( (binary_expression "uVar6 != uVar12" identifier != identifier) ))) )) (compound_statement "{\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }" { (labeled_statement "LAB_0008e080:\n            local_1f4 = uVar12;" statement_identifier : (expression_statement "local_1f4 = uVar12;" (assignment_expression "local_1f4 = uVar12" identifier = identifier) ;)) (if_statement "if (local_1e8 != 0x6b) goto LAB_0008dfe9;" if (parenthesized_expression "(local_1e8 != 0x6b)" ( (binary_expression "local_1e8 != 0x6b" identifier != number_literal) )) (goto_statement "goto LAB_0008dfe9;" goto statement_identifier ;)) (labeled_statement "LAB_0008e093:\n            local_16c = 1;" statement_identifier : (expression_statement "local_16c = 1;" (assignment_expression "local_16c = 1" identifier = number_literal) ;)) (expression_statement "*(uint *)(puVar15 + -0x10) = local_1f4;" (assignment_expression "*(uint *)(puVar15 + -0x10) = local_1f4" (pointer_expression "*(uint *)(puVar15 + -0x10)" * (cast_expression "(uint *)(puVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e0ad" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6ba0();" (call_expression "FUN_001e6ba0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }" { (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_0009035c;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_0009035c" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_0009035c" & identifier)) ;) (expression_statement "FUN_00052750();" (call_expression "FUN_00052750()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }" statement_identifier : (if_statement "if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }" if (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0'))" ( (binary_expression "(*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')" (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar8 + 0x3ef5) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x3ef5) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x3ef5)" * (cast_expression "(char *)(iVar8 + 0x3ef5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3ef5)" ( (binary_expression "iVar8 + 0x3ef5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              local_16c = 2;\n            }" { (expression_statement "local_16c = 2;" (assignment_expression "local_16c = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }" else (compound_statement "{\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }" { (if_statement "if (local_1e8 == 0x6b) goto LAB_0008e093;" if (parenthesized_expression "(local_1e8 == 0x6b)" ( (binary_expression "local_1e8 == 0x6b" identifier == number_literal) )) (goto_statement "goto LAB_0008e093;" goto statement_identifier ;)) (labeled_statement "LAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }" statement_identifier : (if_statement "if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }" if (parenthesized_expression "(local_1e8 == 0x6c)" ( (binary_expression "local_1e8 == 0x6c" identifier == number_literal) )) (compound_statement "{\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }" { (expression_statement "local_16c = 1;" (assignment_expression "local_16c = 1" identifier = number_literal) ;) (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }" { (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_0008e4b2;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_0008e4b2" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_0008e4b2" & identifier)) ;) (expression_statement "FUN_00052750();" (call_expression "FUN_00052750()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0008e0c3;" goto statement_identifier ;) }))) }))) (expression_statement "local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;" (assignment_expression "local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf" identifier = (binary_expression "*(byte *)(local_1f4 + 0x28) & 0xf" (pointer_expression "*(byte *)(local_1f4 + 0x28)" * (cast_expression "(byte *)(local_1f4 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0x28)" ( (binary_expression "local_1f4 + 0x28" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);" (assignment_expression "local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10)" identifier = (cast_expression "(undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_200._1_3_,local_1f8 == 10)" identifier (argument_list "(local_200._1_3_,local_1f8 == 10)" ( (field_expression "local_200._1_3_" identifier . field_identifier) , (binary_expression "local_1f8 == 10" identifier == number_literal) ))))) ;) (if_statement "if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" if (parenthesized_expression "(local_1f8 == 10)" ( (binary_expression "local_1f8 == 10" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }" { (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e336;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e336" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_20c = FUN_0004f6b0();" (assignment_expression "local_20c = FUN_0004f6b0()" identifier = (call_expression "FUN_0004f6b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" if (parenthesized_expression "(local_20c == '\0')" ( (binary_expression "local_20c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" { (if_statement "if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }" if (parenthesized_expression "(local_1e8 < 0xff)" ( (binary_expression "local_1e8 < 0xff" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }" { (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16)" ( (binary_expression "*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25fbb3 + local_1e8 * 4)" ( (binary_expression "unaff_EDI + 0x25fbb3 + local_1e8 * 4" (binary_expression "unaff_EDI + 0x25fbb3" identifier + number_literal) + (binary_expression "local_1e8 * 4" identifier * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" else (compound_statement "{\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" { (expression_statement "local_22c = local_1d8[0][3];" (assignment_expression "local_22c = local_1d8[0][3]" identifier = (subscript_expression "local_1d8[0][3]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;) (expression_statement "local_220 = local_1d8[0][5];" (assignment_expression "local_220 = local_1d8[0][5]" identifier = (subscript_expression "local_1d8[0][5]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;) (expression_statement "local_21c = local_1e8 & 0x7fffffff;" (assignment_expression "local_21c = local_1e8 & 0x7fffffff" identifier = (binary_expression "local_1e8 & 0x7fffffff" identifier & number_literal)) ;) (expression_statement "local_230 = local_1d8[0][1];" (assignment_expression "local_230 = local_1d8[0][1]" identifier = (subscript_expression "local_1d8[0][1]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;) (expression_statement "local_224 = local_1d8[0][4];" (assignment_expression "local_224 = local_1d8[0][4]" identifier = (subscript_expression "local_1d8[0][4]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) ;) (expression_statement "local_234 = *local_1d8[0];" (assignment_expression "local_234 = *local_1d8[0]" identifier = (pointer_expression "*local_1d8[0]" * (subscript_expression "local_1d8[0]" identifier [ number_literal ]))) ;) (expression_statement "puVar3 = *(undefined4 **)(param_1 + 0x78);" (assignment_expression "puVar3 = *(undefined4 **)(param_1 + 0x78)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x78)" * (cast_expression "(undefined4 **)(param_1 + 0x78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (if_statement "if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }" if (parenthesized_expression "(puVar3 == *(undefined4 **)(param_1 + 0x7c))" ( (binary_expression "puVar3 == *(undefined4 **)(param_1 + 0x7c)" identifier == (pointer_expression "*(undefined4 **)(param_1 + 0x7c)" * (cast_expression "(undefined4 **)(param_1 + 0x7c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) )) (compound_statement "{\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }" { (expression_statement "local_23c = *(undefined4 **)(param_1 + 0x74);" (assignment_expression "local_23c = *(undefined4 **)(param_1 + 0x74)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x74)" * (cast_expression "(undefined4 **)(param_1 + 0x74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "local_244 = (int)puVar3 - (int)local_23c;" (assignment_expression "local_244 = (int)puVar3 - (int)local_23c" identifier = (binary_expression "(int)puVar3 - (int)local_23c" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_23c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar12 = local_244 >> 5;" (assignment_expression "uVar12 = local_244 >> 5" identifier = (binary_expression "local_244 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }" { (expression_statement "local_240 = (undefined4 *)0x20;" (assignment_expression "local_240 = (undefined4 *)0x20" identifier = (cast_expression "(undefined4 *)0x20" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;" statement_identifier : (expression_statement "*(undefined4 **)(puVar15 + -0x10) = local_240;" (assignment_expression "*(undefined4 **)(puVar15 + -0x10) = local_240" (pointer_expression "*(undefined4 **)(puVar15 + -0x10)" * (cast_expression "(undefined4 **)(puVar15 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8f9b2" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_238 = (undefined4 *)FUN_00246670();" (assignment_expression "local_238 = (undefined4 *)FUN_00246670()" identifier = (cast_expression "(undefined4 *)FUN_00246670()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_248 = (int)local_240 + (int)local_238;" (assignment_expression "local_248 = (int)local_240 + (int)local_238" identifier = (binary_expression "(int)local_240 + (int)local_238" (cast_expression "(int)local_240" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_238" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_240 = local_238 + 8;" (assignment_expression "local_240 = local_238 + 8" identifier = (binary_expression "local_238 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }" else (compound_statement "{\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }" { (expression_statement "uVar6 = uVar12 * 2;" (assignment_expression "uVar6 = uVar12 * 2" identifier = (binary_expression "uVar12 * 2" identifier * number_literal)) ;) (if_statement "if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }" if (parenthesized_expression "(uVar6 < uVar12)" ( (binary_expression "uVar6 < uVar12" identifier < identifier) )) (compound_statement "{\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }" { (expression_statement "local_240 = (undefined4 *)0xffffffe0;" (assignment_expression "local_240 = (undefined4 *)0xffffffe0" identifier = (cast_expression "(undefined4 *)0xffffffe0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0008f9a2;" goto statement_identifier ;) })) (expression_statement "local_240 = (undefined4 *)0xffffffe0;" (assignment_expression "local_240 = (undefined4 *)0xffffffe0" identifier = (cast_expression "(undefined4 *)0xffffffe0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0x7ffffff < uVar6) goto LAB_0008f9a2;" if (parenthesized_expression "(0x7ffffff < uVar6)" ( (binary_expression "0x7ffffff < uVar6" number_literal < identifier) )) (goto_statement "goto LAB_0008f9a2;" goto statement_identifier ;)) (if_statement "if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }" { (expression_statement "local_240 = (undefined4 *)(uVar12 << 6);" (assignment_expression "local_240 = (undefined4 *)(uVar12 << 6)" identifier = (cast_expression "(undefined4 *)(uVar12 << 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 << 6)" ( (binary_expression "uVar12 << 6" identifier << number_literal) )))) ;) (goto_statement "goto LAB_0008f9a2;" goto statement_identifier ;) })) (expression_statement "local_240 = (undefined4 *)0x20;" (assignment_expression "local_240 = (undefined4 *)0x20" identifier = (cast_expression "(undefined4 *)0x20" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_248 = 0;" (assignment_expression "local_248 = 0" identifier = number_literal) ;) (expression_statement "local_238 = (undefined4 *)0x0;" (assignment_expression "local_238 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "puVar10 = (undefined4 *)(local_244 + (int)local_238);" (assignment_expression "puVar10 = (undefined4 *)(local_244 + (int)local_238)" identifier = (cast_expression "(undefined4 *)(local_244 + (int)local_238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_244 + (int)local_238)" ( (binary_expression "local_244 + (int)local_238" identifier + (cast_expression "(int)local_238" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*puVar10 = param_4;" (assignment_expression "*puVar10 = param_4" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "puVar10[3] = local_230;" (assignment_expression "puVar10[3] = local_230" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[4] = puVar10[4] & 0x80000000 | local_21c;" (assignment_expression "puVar10[4] = puVar10[4] & 0x80000000 | local_21c" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = (binary_expression "puVar10[4] & 0x80000000 | local_21c" (binary_expression "puVar10[4] & 0x80000000" (subscript_expression "puVar10[4]" identifier [ number_literal ]) & number_literal) | identifier)) ;) (expression_statement "puVar10[1] = param_5;" (assignment_expression "puVar10[1] = param_5" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;" (assignment_expression "*(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f" (pointer_expression "*(byte *)((int)puVar10 + 0x13)" * (cast_expression "(byte *)((int)puVar10 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x13)" ( (binary_expression "(int)puVar10 + 0x13" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(byte)(local_21c >> 0x18) & 0x7f" (call_expression "(byte)(local_21c >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_21c >> 0x18)" ( (binary_expression "local_21c >> 0x18" identifier >> number_literal) ))) & number_literal)) ;) (expression_statement "puVar10[2] = local_234;" (assignment_expression "puVar10[2] = local_234" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[7] = local_220;" (assignment_expression "puVar10[7] = local_220" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[5] = local_22c;" (assignment_expression "puVar10[5] = local_22c" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[6] = local_224;" (assignment_expression "puVar10[6] = local_224" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = local_238;" (assignment_expression "puVar10 = local_238" identifier = identifier) ;) (expression_statement "puVar13 = local_23c;" (assignment_expression "puVar13 = local_23c" identifier = identifier) ;) (if_statement "if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }" if (parenthesized_expression "(puVar3 != local_23c)" ( (binary_expression "puVar3 != local_23c" identifier != identifier) )) (compound_statement "{\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }" { (do_statement "do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);" do (compound_statement "{\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  }" { (expression_statement "puVar14 = puVar13 + 8;" (assignment_expression "puVar14 = puVar13 + 8" identifier = (binary_expression "puVar13 + 8" identifier + number_literal)) ;) (expression_statement "*puVar10 = *puVar13;" (assignment_expression "*puVar10 = *puVar13" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar10[1] = puVar13[1];" (assignment_expression "puVar10[1] = puVar13[1]" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = (subscript_expression "puVar13[1]" identifier [ number_literal ])) ;) (expression_statement "puVar10[2] = puVar13[2];" (assignment_expression "puVar10[2] = puVar13[2]" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "puVar10[3] = puVar13[3];" (assignment_expression "puVar10[3] = puVar13[3]" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar10[4] = puVar13[4];" (assignment_expression "puVar10[4] = puVar13[4]" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = (subscript_expression "puVar13[4]" identifier [ number_literal ])) ;) (expression_statement "puVar10[5] = puVar13[5];" (assignment_expression "puVar10[5] = puVar13[5]" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = (subscript_expression "puVar13[5]" identifier [ number_literal ])) ;) (expression_statement "puVar10[6] = puVar13[6];" (assignment_expression "puVar10[6] = puVar13[6]" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (subscript_expression "puVar13[6]" identifier [ number_literal ])) ;) (expression_statement "puVar10[7] = puVar13[7];" (assignment_expression "puVar10[7] = puVar13[7]" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = (subscript_expression "puVar13[7]" identifier [ number_literal ])) ;) (expression_statement "puVar10 = puVar10 + 8;" (assignment_expression "puVar10 = puVar10 + 8" identifier = (binary_expression "puVar10 + 8" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) }) while (parenthesized_expression "(puVar3 != puVar14)" ( (binary_expression "puVar3 != puVar14" identifier != identifier) )) ;) (expression_statement "local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);" (assignment_expression "local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40)" identifier = (cast_expression "(undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40)" ( (binary_expression "(int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40" (binary_expression "(int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U)" (cast_expression "(int)local_238" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U)" ( (binary_expression "(int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U" (binary_expression "(int)puVar3 + (-0x20 - (int)local_23c)" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x20 - (int)local_23c)" ( (binary_expression "-0x20 - (int)local_23c" number_literal - (cast_expression "(int)local_23c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) & number_literal) ))) + number_literal) )))) ;) })) (if_statement "if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }" if (parenthesized_expression "(local_23c != (undefined4 *)0x0)" ( (binary_expression "local_23c != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }" { (expression_statement "*(undefined4 **)(puVar15 + -0x10) = local_23c;" (assignment_expression "*(undefined4 **)(puVar15 + -0x10) = local_23c" (pointer_expression "*(undefined4 **)(puVar15 + -0x10)" * (cast_expression "(undefined4 **)(puVar15 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8faba;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8faba" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 **)(param_1 + 0x74) = local_238;" (assignment_expression "*(undefined4 **)(param_1 + 0x74) = local_238" (pointer_expression "*(undefined4 **)(param_1 + 0x74)" * (cast_expression "(undefined4 **)(param_1 + 0x74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 0x78) = local_240;" (assignment_expression "*(undefined4 **)(param_1 + 0x78) = local_240" (pointer_expression "*(undefined4 **)(param_1 + 0x78)" * (cast_expression "(undefined4 **)(param_1 + 0x78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x7c) = local_248;" (assignment_expression "*(int *)(param_1 + 0x7c) = local_248" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }" else (compound_statement "{\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }" { (expression_statement "puVar3[2] = local_234;" (assignment_expression "puVar3[2] = local_234" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[3] = local_230;" (assignment_expression "puVar3[3] = local_230" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar3 = param_4;" (assignment_expression "*puVar3 = param_4" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[4] = puVar3[4] & 0x80000000 | local_21c;" (assignment_expression "puVar3[4] = puVar3[4] & 0x80000000 | local_21c" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = (binary_expression "puVar3[4] & 0x80000000 | local_21c" (binary_expression "puVar3[4] & 0x80000000" (subscript_expression "puVar3[4]" identifier [ number_literal ]) & number_literal) | identifier)) ;) (expression_statement "puVar3[1] = param_5;" (assignment_expression "puVar3[1] = param_5" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;" (assignment_expression "*(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f" (pointer_expression "*(byte *)((int)puVar3 + 0x13)" * (cast_expression "(byte *)((int)puVar3 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + 0x13)" ( (binary_expression "(int)puVar3 + 0x13" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(byte)(local_1e8 >> 0x18) & 0x7f" (call_expression "(byte)(local_1e8 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_1e8 >> 0x18)" ( (binary_expression "local_1e8 >> 0x18" identifier >> number_literal) ))) & number_literal)) ;) (expression_statement "puVar3[5] = local_22c;" (assignment_expression "puVar3[5] = local_22c" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[6] = local_224;" (assignment_expression "puVar3[6] = local_224" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[7] = local_220;" (assignment_expression "puVar3[7] = local_220" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 0x78) = puVar3 + 8;" (assignment_expression "*(undefined4 **)(param_1 + 0x78) = puVar3 + 8" (pointer_expression "*(undefined4 **)(param_1 + 0x78)" * (cast_expression "(undefined4 **)(param_1 + 0x78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) }))) (if_statement "if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }" if (parenthesized_expression "(local_1e8 - 0xb < 3)" ( (binary_expression "local_1e8 - 0xb < 3" (binary_expression "local_1e8 - 0xb" identifier - number_literal) < number_literal) )) (compound_statement "{\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }" { (expression_statement "local_224 = param_4[0x67];" (assignment_expression "local_224 = param_4[0x67]" identifier = (subscript_expression "param_4[0x67]" identifier [ number_literal ])) ;) (expression_statement "local_22c = param_4[0x66];" (assignment_expression "local_22c = param_4[0x66]" identifier = (subscript_expression "param_4[0x66]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = param_4[100];" (assignment_expression "iVar9 = param_4[100]" identifier = (subscript_expression "param_4[100]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = local_224 + (local_22c - iVar9) * 8;" (assignment_expression "iVar8 = local_224 + (local_22c - iVar9) * 8" identifier = (binary_expression "local_224 + (local_22c - iVar9) * 8" identifier + (binary_expression "(local_22c - iVar9) * 8" (parenthesized_expression "(local_22c - iVar9)" ( (binary_expression "local_22c - iVar9" identifier - identifier) )) * number_literal))) ;) (expression_statement "uVar12 = iVar8 - param_4[0x65];" (assignment_expression "uVar12 = iVar8 - param_4[0x65]" identifier = (binary_expression "iVar8 - param_4[0x65]" identifier - (subscript_expression "param_4[0x65]" identifier [ number_literal ]))) ;) (if_statement "if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }" if (parenthesized_expression "(uVar12 <= param_5)" ( (binary_expression "uVar12 <= param_5" identifier <= identifier) )) (compound_statement "{\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }" { (expression_statement "iVar11 = param_4[0x65] + param_5 + 1;" (assignment_expression "iVar11 = param_4[0x65] + param_5 + 1" identifier = (binary_expression "param_4[0x65] + param_5 + 1" (binary_expression "param_4[0x65] + param_5" (subscript_expression "param_4[0x65]" identifier [ number_literal ]) + identifier) + number_literal)) ;) (if_statement "if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }" if (parenthesized_expression "(param_5 + 1 < uVar12)" ( (binary_expression "param_5 + 1 < uVar12" (binary_expression "param_5 + 1" identifier + number_literal) < identifier) )) (compound_statement "{\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }" { (expression_statement "iVar8 = iVar11 + 0x1f;" (assignment_expression "iVar8 = iVar11 + 0x1f" identifier = (binary_expression "iVar11 + 0x1f" identifier + number_literal)) ;) (if_statement "if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }" if (parenthesized_expression "(-1 < iVar11)" ( (binary_expression "-1 < iVar11" number_literal < identifier) )) (compound_statement "{\n                      iVar8 = iVar11;\n                    }" { (expression_statement "iVar8 = iVar11;" (assignment_expression "iVar8 = iVar11" identifier = identifier) ;) })) (expression_statement "iVar8 = iVar9 + (iVar8 >> 5) * 4;" (assignment_expression "iVar8 = iVar9 + (iVar8 >> 5) * 4" identifier = (binary_expression "iVar9 + (iVar8 >> 5) * 4" identifier + (binary_expression "(iVar8 >> 5) * 4" (parenthesized_expression "(iVar8 >> 5)" ( (binary_expression "iVar8 >> 5" identifier >> number_literal) )) * number_literal))) ;) (expression_statement "iVar11 = iVar11 % 0x20;" (assignment_expression "iVar11 = iVar11 % 0x20" identifier = (binary_expression "iVar11 % 0x20" identifier % number_literal)) ;) (if_statement "if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }" if (parenthesized_expression "(iVar11 < 0)" ( (binary_expression "iVar11 < 0" identifier < number_literal) )) (compound_statement "{\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }" { (expression_statement "iVar11 = iVar11 + 0x20;" (assignment_expression "iVar11 = iVar11 + 0x20" identifier = (binary_expression "iVar11 + 0x20" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + -4;" (assignment_expression "iVar8 = iVar8 + -4" identifier = (binary_expression "iVar8 + -4" identifier + number_literal)) ;) })) (expression_statement "param_4[0x66] = iVar8;" (assignment_expression "param_4[0x66] = iVar8" (subscript_expression "param_4[0x66]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0x67] = iVar11;" (assignment_expression "param_4[0x67] = iVar11" (subscript_expression "param_4[0x67]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }" else (compound_statement "{\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }" { (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x14) = iVar11 - iVar8;" (assignment_expression "*(int *)(puVar15 + -0x14) = iVar11 - iVar8" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "iVar11 - iVar8" identifier - identifier)) ;) (expression_statement "*(int *)(puVar15 + -0x18) = local_224;" (assignment_expression "*(int *)(puVar15 + -0x18) = local_224" (pointer_expression "*(int *)(puVar15 + -0x18)" * (cast_expression "(int *)(puVar15 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x1c) = local_22c;" (assignment_expression "*(int *)(puVar15 + -0x1c) = local_22c" (pointer_expression "*(int *)(puVar15 + -0x1c)" * (cast_expression "(int *)(puVar15 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x20) = param_4 + 100;" (assignment_expression "*(int **)(puVar15 + -0x20) = param_4 + 100" (pointer_expression "*(int **)(puVar15 + -0x20)" * (cast_expression "(int **)(puVar15 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (binary_expression "param_4 + 100" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x900aa;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x900aa" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_254 = local_22c;" (assignment_expression "local_254 = local_22c" identifier = identifier) ;) (expression_statement "local_250 = local_224;" (assignment_expression "local_250 = local_224" identifier = identifier) ;) (expression_statement "FUN_000ab3a0();" (call_expression "FUN_000ab3a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = param_4[100];" (assignment_expression "iVar9 = param_4[100]" identifier = (subscript_expression "param_4[100]" identifier [ number_literal ])) ;) }))) })) (expression_statement "*(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;" (assignment_expression "*(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214" (pointer_expression "*(uint *)(iVar9 + local_210)" * (cast_expression "(uint *)(iVar9 + local_210)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + local_210)" ( (binary_expression "iVar9 + local_210" identifier + identifier) )))) = (binary_expression "*(uint *)(iVar9 + local_210) | local_214" (pointer_expression "*(uint *)(iVar9 + local_210)" * (cast_expression "(uint *)(iVar9 + local_210)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + local_210)" ( (binary_expression "iVar9 + local_210" identifier + identifier) )))) | identifier)) ;) })) (expression_statement "*(uint *)(puVar15 + -0x10) = local_1f4;" (assignment_expression "*(uint *)(puVar15 + -0x10) = local_1f4" (pointer_expression "*(uint *)(puVar15 + -0x10)" * (cast_expression "(uint *)(puVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8f2ad" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0006c210();" (call_expression "FUN_0006c210()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }" if (parenthesized_expression "(local_1e8 < 0xff)" ( (binary_expression "local_1e8 < 0xff" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }" { (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16)" ( (binary_expression "*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25ffaf + local_1e8 * 4)" ( (binary_expression "unaff_EDI + 0x25ffaf + local_1e8 * 4" (binary_expression "unaff_EDI + 0x25ffaf" identifier + number_literal) + (binary_expression "local_1e8 * 4" identifier * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }))) }) (else_clause "else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" else (if_statement "if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" if (parenthesized_expression "(local_1e8 < 0xff)" ( (binary_expression "local_1e8 < 0xff" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" { (expression_statement "(*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();" (call_expression "(*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))" ( (pointer_expression "*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16)" * (cast_expression "(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16)" ( (binary_expression "*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16" (pointer_expression "*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI)" * (cast_expression "(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI)" ( (binary_expression "&UNK_0025f53f + local_1e8 * 4 + unaff_EDI" (binary_expression "&UNK_0025f53f + local_1e8 * 4" (pointer_expression "&UNK_0025f53f" & identifier) + (binary_expression "local_1e8 * 4" identifier * number_literal)) + identifier) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))) (expression_statement "*(uint *)(puVar15 + -0xc) = local_1f4;" (assignment_expression "*(uint *)(puVar15 + -0xc) = local_1f4" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 ***)(puVar15 + -0x10) = local_154;" (assignment_expression "*(undefined1 ***)(puVar15 + -0x10) = local_154" (pointer_expression "*(undefined1 ***)(puVar15 + -0x10)" * (cast_expression "(undefined1 ***)(puVar15 + -0x10)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e377;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e377" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e7ee0();" (call_expression "FUN_001e7ee0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = param_4[1];" (assignment_expression "iVar8 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "local_200 = local_154[0];" (assignment_expression "local_200 = local_154[0]" identifier = (subscript_expression "local_154[0]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;" (assignment_expression "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x269ceb" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e395;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e395" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = gettext();" (assignment_expression "uVar7 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined1 **)(puVar15 + -8) = local_200;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = local_200" (pointer_expression "*(undefined1 **)(puVar15 + -8)" * (cast_expression "(undefined1 **)(puVar15 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar15 + -0xc) = local_1e8;" (assignment_expression "*(uint *)(puVar15 + -0xc) = local_1e8" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = uVar7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = uVar7" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e3ac" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000d1330();" (call_expression "FUN_000d1330()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }" if (parenthesized_expression "(local_154[0] != local_14c)" ( (binary_expression "local_154[0] != local_14c" (subscript_expression "local_154[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }" { (expression_statement "*(undefined1 **)(puVar15 + -0x14) = local_154[0];" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = local_154[0]" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" * (cast_expression "(undefined1 **)(puVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (subscript_expression "local_154[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e3c8" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" * (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" ( (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }" { (expression_statement "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;" (assignment_expression "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x26878f" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x5c" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;" (assignment_expression "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x254654" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x90264;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x90264" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;" if (parenthesized_expression "(*(char *)(iVar8 + 0x3fed) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x3fed) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x3fed)" * (cast_expression "(char *)(iVar8 + 0x3fed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3fed)" ( (binary_expression "iVar8 + 0x3fed" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008e248;" goto statement_identifier ;)) (if_statement "if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }" if (parenthesized_expression "(param_5 == param_4[0x52])" ( (binary_expression "param_5 == param_4[0x52]" identifier == (subscript_expression "param_4[0x52]" identifier [ number_literal ])) )) (compound_statement "{\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }" { (if_statement "if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }" if (parenthesized_expression "(local_1e8 != 0x26)" ( (binary_expression "local_1e8 != 0x26" identifier != number_literal) )) (compound_statement "{\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }" { (labeled_statement "LAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + -8) = 0x8e463;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0x8e463" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "FUN_0008c440();" (call_expression "FUN_0008c440()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto joined_r0x0008e46f;" goto statement_identifier ;) })) (if_statement "if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }" if (parenthesized_expression "(local_1f8 == 10)" ( (binary_expression "local_1f8 == 10" identifier == number_literal) )) (compound_statement "{\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }" { (if_statement "if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }" if (parenthesized_expression "(((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0'))" ( (binary_expression "((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')" (parenthesized_expression "((*(byte *)(param_1 + 8) & 2) != 0)" ( (binary_expression "(*(byte *)(param_1 + 8) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 8) & 2)" ( (binary_expression "*(byte *)(param_1 + 8) & 2" (pointer_expression "*(byte *)(param_1 + 8)" * (cast_expression "(byte *)(param_1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }" { (expression_statement "bVar5 = *(byte *)(iVar8 + 0x2931);" (assignment_expression "bVar5 = *(byte *)(iVar8 + 0x2931)" identifier = (pointer_expression "*(byte *)(iVar8 + 0x2931)" * (cast_expression "(byte *)(iVar8 + 0x2931)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2931)" ( (binary_expression "iVar8 + 0x2931" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;" statement_identifier : (if_statement "if (bVar5 == 0) goto LAB_0008e248;" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008e248;" goto statement_identifier ;))) })) (goto_statement "goto LAB_0008e450;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }" if (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0'))" ( (binary_expression "(*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')" (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar8 + 0x2931) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x2931) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x2931)" * (cast_expression "(char *)(iVar8 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2931)" ( (binary_expression "iVar8 + 0x2931" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }" { (expression_statement "bVar5 = *(byte *)(local_1f4 + 0x2a);" (assignment_expression "bVar5 = *(byte *)(local_1f4 + 0x2a)" identifier = (pointer_expression "*(byte *)(local_1f4 + 0x2a)" * (cast_expression "(byte *)(local_1f4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0x2a)" ( (binary_expression "local_1f4 + 0x2a" identifier + number_literal) ))))) ;) (expression_statement "local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);" (assignment_expression "local_1f8 = CONCAT31(local_1f8._1_3_,bVar5)" identifier = (call_expression "CONCAT31(local_1f8._1_3_,bVar5)" identifier (argument_list "(local_1f8._1_3_,bVar5)" ( (field_expression "local_1f8._1_3_" identifier . field_identifier) , identifier )))) ;) (if_statement "if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;" if (parenthesized_expression "((bVar5 & 7) == 0)" ( (binary_expression "(bVar5 & 7) == 0" (parenthesized_expression "(bVar5 & 7)" ( (binary_expression "bVar5 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }" { (expression_statement "local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));" (assignment_expression "local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b))" identifier = (call_expression "CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b))" identifier (argument_list "(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b))" ( (field_expression "local_1f8._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)(local_1f4 + 0x2b)" * (cast_expression "(byte *)(local_1f4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0x2b)" ( (binary_expression "local_1f4 + 0x2b" identifier + number_literal) )))) )))) ;) (expression_statement "bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;" (assignment_expression "bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)(local_1f4 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(local_1f4 + 0x2b) >> 5" (pointer_expression "*(byte *)(local_1f4 + 0x2b)" * (cast_expression "(byte *)(local_1f4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0x2b)" ( (binary_expression "local_1f4 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;" if (parenthesized_expression "((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0))" ( (binary_expression "(*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)" (parenthesized_expression "(*(int *)(local_1f4 + 0xc) == 0xfff1)" ( (binary_expression "*(int *)(local_1f4 + 0xc) == 0xfff1" (pointer_expression "*(int *)(local_1f4 + 0xc)" * (cast_expression "(int *)(local_1f4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0xc)" ( (binary_expression "local_1f4 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0008e450;" goto statement_identifier ;)) (if_statement "if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;" if (parenthesized_expression "(*(int *)(local_1f4 + 0xc) == 0)" ( (binary_expression "*(int *)(local_1f4 + 0xc) == 0" (pointer_expression "*(int *)(local_1f4 + 0xc)" * (cast_expression "(int *)(local_1f4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0xc)" ( (binary_expression "local_1f4 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto joined_r0x0008e445;" goto statement_identifier ;)) }) (else_clause "else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;" else (if_statement "if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;" if (parenthesized_expression "((byte)((bVar5 & 7) - 3) < 2)" ( (binary_expression "(byte)((bVar5 & 7) - 3) < 2" (call_expression "(byte)((bVar5 & 7) - 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((bVar5 & 7) - 3)" ( (binary_expression "(bVar5 & 7) - 3" (parenthesized_expression "(bVar5 & 7)" ( (binary_expression "bVar5 & 7" identifier & number_literal) )) - number_literal) ))) < number_literal) )) (goto_statement "goto LAB_0008e450;" goto statement_identifier ;)))) })) }) (else_clause "else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }" else (compound_statement "{\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }" { (labeled_statement "joined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }" statement_identifier : (if_statement "if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }" if (parenthesized_expression "(local_1e8 - 0xf < 0x50)" ( (binary_expression "local_1e8 - 0xf < 0x50" (binary_expression "local_1e8 - 0xf" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }" { (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16)" ( (binary_expression "*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4)" ( (binary_expression "unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4" (binary_expression "unaff_EDI + 0x25f93b" identifier + number_literal) + (binary_expression "(local_1e8 - 0xf) * 4" (parenthesized_expression "(local_1e8 - 0xf)" ( (binary_expression "local_1e8 - 0xf" identifier - number_literal) )) * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) }))) (expression_statement "local_1f8 = 0;" (assignment_expression "local_1f8 = 0" identifier = number_literal) ;) (if_statement "if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }" if (parenthesized_expression "((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52]))))" ( (binary_expression "(((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))" (parenthesized_expression "(((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0))" ( (binary_expression "((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)" (parenthesized_expression "((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0))" ( (binary_expression "(local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)" (parenthesized_expression "(local_1e8 - 0x2f < 0x12)" ( (binary_expression "local_1e8 - 0x2f < 0x12" (binary_expression "local_1e8 - 0x2f" identifier - number_literal) < number_literal) )) && (parenthesized_expression "((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)" ( (binary_expression "(1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0" (parenthesized_expression "(1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU)" ( (binary_expression "1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU" (binary_expression "1 << ((byte)(local_1e8 - 0x2f) & 0x1f)" number_literal << (parenthesized_expression "((byte)(local_1e8 - 0x2f) & 0x1f)" ( (binary_expression "(byte)(local_1e8 - 0x2f) & 0x1f" (call_expression "(byte)(local_1e8 - 0x2f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_1e8 - 0x2f)" ( (binary_expression "local_1e8 - 0x2f" identifier - number_literal) ))) & number_literal) ))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((*(byte *)(local_1f4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(local_1f4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(local_1f4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(local_1f4 + 0x2a) & 7" (pointer_expression "*(byte *)(local_1f4 + 0x2a)" * (cast_expression "(byte *)(local_1f4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0x2a)" ( (binary_expression "local_1f4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))" ( (parenthesized_expression "(piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52]))" ( (comma_expression "piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])" (assignment_expression "piVar2 = *(int **)(local_1f4 + 8)" identifier = (pointer_expression "*(int **)(local_1f4 + 8)" * (cast_expression "(int **)(local_1f4 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_1f4 + 8)" ( (binary_expression "local_1f4 + 8" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])" (binary_expression "(*(byte *)(piVar2 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar2 + 0xb) & 1)" ( (binary_expression "*(byte *)(piVar2 + 0xb) & 1" (pointer_expression "*(byte *)(piVar2 + 0xb)" * (cast_expression "(byte *)(piVar2 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 0xb)" ( (binary_expression "piVar2 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "(iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])" ( (comma_expression "iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52]" (assignment_expression "iVar8 = *(int *)(local_1f4 + 0xc)" identifier = (pointer_expression "*(int *)(local_1f4 + 0xc)" * (cast_expression "(int *)(local_1f4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f4 + 0xc)" ( (binary_expression "local_1f4 + 0xc" identifier + number_literal) ))))) , (binary_expression "iVar8 == piVar2[0x52]" identifier == (subscript_expression "piVar2[0x52]" identifier [ number_literal ]))) )))) )) ))) )) (compound_statement "{\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0x8e5d1;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0x8e5d1" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = FUN_00053620();" (assignment_expression "iVar9 = FUN_00053620()" identifier = (call_expression "FUN_00053620()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];" (assignment_expression "local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4]" identifier = (binary_expression "*(uint *)(iVar9 + 0x30) + local_1d8[0][4]" (pointer_expression "*(uint *)(iVar9 + 0x30)" * (cast_expression "(uint *)(iVar9 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) + (subscript_expression "local_1d8[0][4]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);" (assignment_expression "local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" identifier = (binary_expression "*(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" (binary_expression "*(int *)(iVar9 + 0x34) + local_1d8[0][5]" (pointer_expression "*(int *)(iVar9 + 0x34)" * (cast_expression "(int *)(iVar9 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x34)" ( (binary_expression "iVar9 + 0x34" identifier + number_literal) )))) + (subscript_expression "local_1d8[0][5]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ])) + (cast_expression "(uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" identifier (argument_list "(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" ( (pointer_expression "*(uint *)(iVar9 + 0x30)" * (cast_expression "(uint *)(iVar9 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) , (subscript_expression "local_1d8[0][4]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ]) )))))) ;) (expression_statement "pcVar1 = *(code **)(*piVar2 + 0x3c);" (assignment_expression "pcVar1 = *(code **)(*piVar2 + 0x3c)" identifier = (pointer_expression "*(code **)(*piVar2 + 0x3c)" * (cast_expression "(code **)(*piVar2 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x3c)" ( (binary_expression "*piVar2 + 0x3c" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }" if (parenthesized_expression "(pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3))" ( (binary_expression "pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" identifier == (cast_expression "(code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" ( (binary_expression "(int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3" (binary_expression "(int)&__DT_REL[0x26b4].r_info + unaff_EDI" (cast_expression "(int)&__DT_REL[0x26b4].r_info" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_REL[0x26b4].r_info" & (field_expression "__DT_REL[0x26b4].r_info" (subscript_expression "__DT_REL[0x26b4]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) )))) )) (compound_statement "{\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }" { (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x14) = piVar2 + 0x24;" (assignment_expression "*(int **)(puVar15 + -0x14) = piVar2 + 0x24" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "piVar2 + 0x24" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e612;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e612" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar17 = FUN_000b2960();" (assignment_expression "uVar17 = FUN_000b2960()" identifier = (call_expression "FUN_000b2960()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }" else (compound_statement "{\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }" { (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x14) = piVar2;" (assignment_expression "*(int **)(puVar15 + -0x14) = piVar2" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x9018b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x9018b" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar17 = (*pcVar1)();" (assignment_expression "uVar17 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar12 = (uint)((ulonglong)uVar17 >> 0x20);" (assignment_expression "uVar12 = (uint)((ulonglong)uVar17 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar17 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar17 >> 0x20)" ( (binary_expression "(ulonglong)uVar17 >> 0x20" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }" if (parenthesized_expression "((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17)))" ( (binary_expression "(local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))" (parenthesized_expression "(local_1e8 != 0x32)" ( (binary_expression "local_1e8 != 0x32" identifier != number_literal) )) && (parenthesized_expression "(local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))" ( (binary_expression "local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17)" (binary_expression "local_1f0 < uVar12" identifier < identifier) || (binary_expression "local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17)" (binary_expression "local_1f0 - uVar12" identifier - identifier) < (call_expression "(uint)(local_1f4 < (uint)uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_1f4 < (uint)uVar17)" ( (binary_expression "local_1f4 < (uint)uVar17" identifier < (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ))) )) (compound_statement "{\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }" { (if_statement "if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }" if (parenthesized_expression "(local_1e8 == 0x40)" ( (binary_expression "local_1e8 == 0x40" identifier == number_literal) )) (compound_statement "{\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }" { (expression_statement "uVar12 = local_1f4;" (assignment_expression "uVar12 = local_1f4" identifier = identifier) ;) (if_statement "if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }" if (parenthesized_expression "(local_1f8 == 0)" ( (binary_expression "local_1f8 == 0" identifier == number_literal) )) (compound_statement "{\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint **)(puVar15 + -0xc) = local_1d0;" (assignment_expression "*(uint **)(puVar15 + -0xc) = local_1d0" (pointer_expression "*(uint **)(puVar15 + -0xc)" * (cast_expression "(uint **)(puVar15 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar15 + -0x10) = param_5;" (assignment_expression "*(uint *)(puVar15 + -0x10) = param_5" (pointer_expression "*(uint *)(puVar15 + -0x10)" * (cast_expression "(uint *)(puVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x14) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x14) = param_4" (pointer_expression "*(int **)(puVar15 + -0x14)" * (cast_expression "(int **)(puVar15 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x90330;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x90330" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_1f8 = FUN_00121d40();" (assignment_expression "local_1f8 = FUN_00121d40()" identifier = (call_expression "FUN_00121d40()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar12 = extraout_ECX_00;" (assignment_expression "uVar12 = extraout_ECX_00" identifier = identifier) ;) })) (if_statement "if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }" if (parenthesized_expression "(local_1d8[0][1] != 0)" ( (binary_expression "local_1d8[0][1] != 0" (subscript_expression "local_1d8[0][1]" (subscript_expression "local_1d8[0]" identifier [ number_literal ]) [ number_literal ]) != number_literal) )) (compound_statement "{\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }" { (expression_statement "*(uint *)(puVar15 + -8) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar12" (pointer_expression "*(uint *)(puVar15 + -8)" * (cast_expression "(uint *)(puVar15 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;" (assignment_expression "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x2685ab" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "&UNK_002697a3 + unaff_EDI" (pointer_expression "&UNK_002697a3" & identifier) + identifier)) ;) (expression_statement "*(undefined **)(puVar15 + -0x18) = &UNK_000904e5;" (assignment_expression "*(undefined **)(puVar15 + -0x18) = &UNK_000904e5" (pointer_expression "*(undefined **)(puVar15 + -0x18)" * (cast_expression "(undefined **)(puVar15 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&UNK_000904e5" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;" if (parenthesized_expression "((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8))" ( (binary_expression "(*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)" (parenthesized_expression "(*local_1d8[0] + 3U < local_1d0[0])" ( (binary_expression "*local_1d8[0] + 3U < local_1d0[0]" (binary_expression "*local_1d8[0] + 3U" (pointer_expression "*local_1d8[0]" * (subscript_expression "local_1d8[0]" identifier [ number_literal ])) + number_literal) < (subscript_expression "local_1d0[0]" identifier [ number_literal ])) )) && (parenthesized_expression "((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)" ( (binary_expression "(*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8" (parenthesized_expression "(*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc)" ( (binary_expression "*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc" (pointer_expression "*(byte *)(local_1f8 + 3 + *local_1d8[0])" * (cast_expression "(byte *)(local_1f8 + 3 + *local_1d8[0])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1f8 + 3 + *local_1d8[0])" ( (binary_expression "local_1f8 + 3 + *local_1d8[0]" (binary_expression "local_1f8 + 3" identifier + number_literal) + (pointer_expression "*local_1d8[0]" * (subscript_expression "local_1d8[0]" identifier [ number_literal ]))) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0008e248;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0x8e698;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0x8e698" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008c440();" (call_expression "FUN_0008c440()" identifier (argument_list "()" ( ))) ;) })) })) }))) (labeled_statement "LAB_0008e248:\n          puVar15 = puVar15 + -4;" statement_identifier : (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;)) (if_statement "if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }" if (parenthesized_expression "(local_1e8 - 0xe < 0x4e)" ( (binary_expression "local_1e8 - 0xe < 0x4e" (binary_expression "local_1e8 - 0xe" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }" { (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16)" ( (binary_expression "*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4)" ( (binary_expression "unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4" (binary_expression "unaff_EDI + 0x25fa7b" identifier + number_literal) + (binary_expression "(local_1e8 - 0xe) * 4" (parenthesized_expression "(local_1e8 - 0xe)" ( (binary_expression "local_1e8 - 0xe" identifier - number_literal) )) * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }))) }))) (labeled_statement "LAB_0008dda8:\n      local_1ec = local_1ec + 1;" statement_identifier : (expression_statement "local_1ec = local_1ec + 1;" (assignment_expression "local_1ec = local_1ec + 1" identifier = (binary_expression "local_1ec + 1" identifier + number_literal)) ;)) (expression_statement "param_7 = param_7 + 6;" (assignment_expression "param_7 = param_7 + 6" identifier = (binary_expression "param_7 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_8 != local_1ec)" ( (binary_expression "param_8 != local_1ec" identifier != identifier) )) ;) (if_statement "if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }" if (parenthesized_expression "((local_16c != 0) && (local_168 != 0))" ( (binary_expression "(local_16c != 0) && (local_168 != 0)" (parenthesized_expression "(local_16c != 0)" ( (binary_expression "local_16c != 0" identifier != number_literal) )) && (parenthesized_expression "(local_168 != 0)" ( (binary_expression "local_168 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }" { (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "unaff_EDI + 0x2699db" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8dde7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8dde7" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = gettext();" (assignment_expression "uVar7 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = local_15c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = local_15c" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = local_160;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = local_160" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = local_164;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = local_164" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x20) = local_168;" (assignment_expression "*(int *)(puVar15 + -0x20) = local_168" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8de07;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8de07" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000d1a30();" (call_expression "FUN_000d1a30()" 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 (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 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (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) )) (compound_statement { (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 (binary_expression IDENT + IDENT) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (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 , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) }))) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (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 *)) ) (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 (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) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) ))) >> LIT) ))) <= IDENT) )) (compound_statement { (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 *)) ) (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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) & LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (labeled_statement statement_identifier : (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 *)) ) (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 (pointer_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 = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) ))) >> LIT) ))) <= IDENT) )) (compound_statement { (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 *)) ) (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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (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) ))))) ;) }) (else_clause else (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) + LIT) ))))) ;) (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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 (binary_expression IDENT + IDENT) + LIT) )))) + LIT) ))))) ;) (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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) }))) }))) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (binary_expression IDENT == LIT) ))))) ;) (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 *)) ) (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 IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 (call_expression (parenthesized_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 (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) + IDENT) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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) ))))) ;) (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 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (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)) ;) (labeled_statement statement_identifier : (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 *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) | IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) & LIT) ))) + 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 *))) ) (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 *))) ) (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) | IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_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) )))) = (binary_expression IDENT + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (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) )))) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 = (subscript_expression IDENT [ LIT ])) ;) }))) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) | IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_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 (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) + IDENT) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) }))) }) (else_clause else (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) + IDENT) )))) + IDENT) )))) )) (argument_list ( ))) ;) (return_statement return ;) })))) (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 * (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 IDENT + LIT) )))) = (subscript_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 (call_expression IDENT (argument_list ( ))) ;) })) (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 (binary_expression IDENT + IDENT) + LIT) )))) + LIT) ))))) ;) (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 *)) ) (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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT)) ;) (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) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) ))) < LIT) )) (goto_statement goto statement_identifier ;)))) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) )))) + IDENT) )))) )) (argument_list ( ))) ;) (return_statement return ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) & LIT) ))) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (subscript_expression IDENT [ LIT ]))) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) )))))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + IDENT) + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_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 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 *)) ) (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 (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) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) + LIT) < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (pointer_expression * (subscript_expression IDENT [ LIT ]))) )))) & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;)) })) (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 ( ))) ;) })) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) )))) + IDENT) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression 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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_0008dc10(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 extraout_ECX;\n  undefined4 *puVar10;\n  int iVar11;\n  uint extraout_ECX_00;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  int unaff_EDI;\n  int iVar16;\n  undefined8 uVar17;\n  int aiStackY_280 [5];\n  undefined1 auStack_25c [8];\n  int local_254;\n  int local_250;\n  int local_248;\n  int local_244;\n  undefined4 *local_240;\n  undefined4 *local_23c;\n  undefined4 *local_238;\n  int local_234;\n  int local_230;\n  int local_22c;\n  int local_224;\n  int local_220;\n  uint local_21c;\n  int local_218;\n  uint local_214;\n  int local_210;\n  char local_20c;\n  int local_204;\n  undefined1 *local_200;\n  char local_1f9;\n  uint local_1f8;\n  uint local_1f4;\n  uint local_1f0;\n  int local_1ec;\n  uint local_1e8;\n  int *local_1d8 [2];\n  uint local_1d0 [25];\n  int local_16c;\n  int local_168;\n  undefined4 local_164;\n  undefined4 local_160;\n  undefined4 local_15c;\n  undefined1 local_158;\n  undefined1 *local_154 [2];\n  undefined1 local_14c [268];\n  int local_40 [12];\n  \n  FUN_000b484e();\n  iVar16 = unaff_EDI + 0x3863e7;\n  local_1f9 = param_10;\n  if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }\n  puVar15 = auStack_25c;\n  if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }\n  local_16c = 0;\n  local_168 = 0;\n  local_164 = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_158 = 0;\n  if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0008dc10(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)" (identifier "FUN_0008dc10") (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,int *param_4,uint param_5,\n                 int param_6,int *param_7,int param_8,undefined4 param_9,char param_10,uint param_11\n                 ,int param_12)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (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 "int *param_7" (primitive_type "int") (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 "char param_10" (primitive_type "char") (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 *pcVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 extraout_ECX;\n  undefined4 *puVar10;\n  int iVar11;\n  uint extraout_ECX_00;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  int unaff_EDI;\n  int iVar16;\n  undefined8 uVar17;\n  int aiStackY_280 [5];\n  undefined1 auStack_25c [8];\n  int local_254;\n  int local_250;\n  int local_248;\n  int local_244;\n  undefined4 *local_240;\n  undefined4 *local_23c;\n  undefined4 *local_238;\n  int local_234;\n  int local_230;\n  int local_22c;\n  int local_224;\n  int local_220;\n  uint local_21c;\n  int local_218;\n  uint local_214;\n  int local_210;\n  char local_20c;\n  int local_204;\n  undefined1 *local_200;\n  char local_1f9;\n  uint local_1f8;\n  uint local_1f4;\n  uint local_1f0;\n  int local_1ec;\n  uint local_1e8;\n  int *local_1d8 [2];\n  uint local_1d0 [25];\n  int local_16c;\n  int local_168;\n  undefined4 local_164;\n  undefined4 local_160;\n  undefined4 local_15c;\n  undefined1 local_158;\n  undefined1 *local_154 [2];\n  undefined1 local_14c [268];\n  int local_40 [12];\n  \n  FUN_000b484e();\n  iVar16 = unaff_EDI + 0x3863e7;\n  local_1f9 = param_10;\n  if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }\n  puVar15 = auStack_25c;\n  if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }\n  local_16c = 0;\n  local_168 = 0;\n  local_164 = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_158 = 0;\n  if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }\n  return;\n}" ({ "{") (declaration "code *pcVar1;" (type_identifier "code") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint extraout_ECX_00;" (type_identifier "uint") (identifier "extraout_ECX_00") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined8 uVar17;" (type_identifier "undefined8") (identifier "uVar17") (; ";")) (declaration "int aiStackY_280 [5];" (primitive_type "int") (array_declarator "aiStackY_280 [5]" (identifier "aiStackY_280") ([ "[") (number_literal "5") (] "]")) (; ";")) (declaration "undefined1 auStack_25c [8];" (type_identifier "undefined1") (array_declarator "auStack_25c [8]" (identifier "auStack_25c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int local_254;" (primitive_type "int") (identifier "local_254") (; ";")) (declaration "int local_250;" (primitive_type "int") (identifier "local_250") (; ";")) (declaration "int local_248;" (primitive_type "int") (identifier "local_248") (; ";")) (declaration "int local_244;" (primitive_type "int") (identifier "local_244") (; ";")) (declaration "undefined4 *local_240;" (type_identifier "undefined4") (pointer_declarator "*local_240" (* "*") (identifier "local_240")) (; ";")) (declaration "undefined4 *local_23c;" (type_identifier "undefined4") (pointer_declarator "*local_23c" (* "*") (identifier "local_23c")) (; ";")) (declaration "undefined4 *local_238;" (type_identifier "undefined4") (pointer_declarator "*local_238" (* "*") (identifier "local_238")) (; ";")) (declaration "int local_234;" (primitive_type "int") (identifier "local_234") (; ";")) (declaration "int local_230;" (primitive_type "int") (identifier "local_230") (; ";")) (declaration "int local_22c;" (primitive_type "int") (identifier "local_22c") (; ";")) (declaration "int local_224;" (primitive_type "int") (identifier "local_224") (; ";")) (declaration "int local_220;" (primitive_type "int") (identifier "local_220") (; ";")) (declaration "uint local_21c;" (type_identifier "uint") (identifier "local_21c") (; ";")) (declaration "int local_218;" (primitive_type "int") (identifier "local_218") (; ";")) (declaration "uint local_214;" (type_identifier "uint") (identifier "local_214") (; ";")) (declaration "int local_210;" (primitive_type "int") (identifier "local_210") (; ";")) (declaration "char local_20c;" (primitive_type "char") (identifier "local_20c") (; ";")) (declaration "int local_204;" (primitive_type "int") (identifier "local_204") (; ";")) (declaration "undefined1 *local_200;" (type_identifier "undefined1") (pointer_declarator "*local_200" (* "*") (identifier "local_200")) (; ";")) (declaration "char local_1f9;" (primitive_type "char") (identifier "local_1f9") (; ";")) (declaration "uint local_1f8;" (type_identifier "uint") (identifier "local_1f8") (; ";")) (declaration "uint local_1f4;" (type_identifier "uint") (identifier "local_1f4") (; ";")) (declaration "uint local_1f0;" (type_identifier "uint") (identifier "local_1f0") (; ";")) (declaration "int local_1ec;" (primitive_type "int") (identifier "local_1ec") (; ";")) (declaration "uint local_1e8;" (type_identifier "uint") (identifier "local_1e8") (; ";")) (declaration "int *local_1d8 [2];" (primitive_type "int") (pointer_declarator "*local_1d8 [2]" (* "*") (array_declarator "local_1d8 [2]" (identifier "local_1d8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "uint local_1d0 [25];" (type_identifier "uint") (array_declarator "local_1d0 [25]" (identifier "local_1d0") ([ "[") (number_literal "25") (] "]")) (; ";")) (declaration "int local_16c;" (primitive_type "int") (identifier "local_16c") (; ";")) (declaration "int local_168;" (primitive_type "int") (identifier "local_168") (; ";")) (declaration "undefined4 local_164;" (type_identifier "undefined4") (identifier "local_164") (; ";")) (declaration "undefined4 local_160;" (type_identifier "undefined4") (identifier "local_160") (; ";")) (declaration "undefined4 local_15c;" (type_identifier "undefined4") (identifier "local_15c") (; ";")) (declaration "undefined1 local_158;" (type_identifier "undefined1") (identifier "local_158") (; ";")) (declaration "undefined1 *local_154 [2];" (type_identifier "undefined1") (pointer_declarator "*local_154 [2]" (* "*") (array_declarator "local_154 [2]" (identifier "local_154") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_14c [268];" (type_identifier "undefined1") (array_declarator "local_14c [268]" (identifier "local_14c") ([ "[") (number_literal "268") (] "]")) (; ";")) (declaration "int local_40 [12];" (primitive_type "int") (array_declarator "local_40 [12]" (identifier "local_40") ([ "[") (number_literal "12") (] "]")) (; ";")) (expression_statement "FUN_000b484e();" (call_expression "FUN_000b484e()" (identifier "FUN_000b484e") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar16 = unaff_EDI + 0x3863e7;" (assignment_expression "iVar16 = unaff_EDI + 0x3863e7" (identifier "iVar16") (= "=") (binary_expression "unaff_EDI + 0x3863e7" (identifier "unaff_EDI") (+ "+") (number_literal "0x3863e7"))) (; ";")) (expression_statement "local_1f9 = param_10;" (assignment_expression "local_1f9 = param_10" (identifier "local_1f9") (= "=") (identifier "param_10")) (; ";")) (if_statement "if (*(char *)(param_1 + 0x9e) == '\0') {\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x9e) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x9e) == '\0'" (pointer_expression "*(char *)(param_1 + 0x9e)" (* "*") (cast_expression "(char *)(param_1 + 0x9e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9e)" (( "(") (binary_expression "param_1 + 0x9e" (identifier "param_1") (+ "+") (number_literal "0x9e")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    cVar4 = '\0';\n    if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }\n    *(char *)(param_1 + 0x9d) = cVar4;\n    *(undefined1 *)(param_1 + 0x9e) = 1;\n  }" ({ "{") (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 8) & 2) != 0) {\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 8) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 8) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 8) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 8) & 2" (pointer_expression "*(byte *)(param_1 + 8)" (* "*") (cast_expression "(byte *)(param_1 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n      if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }\n      cVar4 = *(char *)(iVar8 + 0x2b60);\n      if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (* "*") (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (( "(") (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (( "(") (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" (identifier "BYTE_ARRAY_003868b9") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x16")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);\n      }" ({ "{") (expression_statement "FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);" (call_expression "FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX)" (identifier "FUN_000da200") (argument_list "(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX)" (( "(") (binary_expression "unaff_EDI + 0x254654" (identifier "unaff_EDI") (+ "+") (number_literal "0x254654")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "unaff_EDI + 0x26878f" (identifier "unaff_EDI") (+ "+") (number_literal "0x26878f")) (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (} "}"))) (expression_statement "cVar4 = *(char *)(iVar8 + 0x2b60);" (assignment_expression "cVar4 = *(char *)(iVar8 + 0x2b60)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)(iVar8 + 0x2b60)" (* "*") (cast_expression "(char *)(iVar8 + 0x2b60)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2b60)" (( "(") (binary_expression "iVar8 + 0x2b60" (identifier "iVar8") (+ "+") (number_literal "0x2b60")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar8 + 0x2b60) != '\0') {\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar8 + 0x2b60) != '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x2b60) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x2b60)" (* "*") (cast_expression "(char *)(iVar8 + 0x2b60)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2b60)" (( "(") (binary_expression "iVar8 + 0x2b60" (identifier "iVar8") (+ "+") (number_literal "0x2b60")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }\n      }" ({ "{") (if_statement "if (*(char *)(iVar8 + 0x2b61) == '\0') {\n          cVar4 = '\0';\n        }\n        else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar8 + 0x2b61) == '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x2b61) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x2b61)" (* "*") (cast_expression "(char *)(iVar8 + 0x2b61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2b61)" (( "(") (binary_expression "iVar8 + 0x2b61" (identifier "iVar8") (+ "+") (number_literal "0x2b61")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          cVar4 = '\0';\n        }" ({ "{") (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }" (else "else") (compound_statement "{\n          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));\n          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);\n          cVar4 = (char)local_1e8;\n          if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }\n        }" ({ "{") (expression_statement "local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));" (assignment_expression "local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61))" (identifier "local_1e8") (= "=") (call_expression "CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61))" (identifier "CONCAT31") (argument_list "(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61))" (( "(") (field_expression "local_1e8._1_3_" (identifier "local_1e8") (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*(char *)(iVar8 + 0x2b61)" (* "*") (cast_expression "(char *)(iVar8 + 0x2b61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2b61)" (( "(") (binary_expression "iVar8 + 0x2b61" (identifier "iVar8") (+ "+") (number_literal "0x2b61")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);" (assignment_expression "iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0)" (identifier "FUN_001e9100") (argument_list "(param_2,&UNK_002694d6 + unaff_EDI,0)" (( "(") (identifier "param_2") (, ",") (binary_expression "&UNK_002694d6 + unaff_EDI" (pointer_expression "&UNK_002694d6" (& "&") (identifier "UNK_002694d6")) (+ "+") (identifier "unaff_EDI")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "cVar4 = (char)local_1e8;" (assignment_expression "cVar4 = (char)local_1e8" (identifier "cVar4") (= "=") (cast_expression "(char)local_1e8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_1e8"))) (; ";")) (if_statement "if (iVar8 == 0) {\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar7 = gettext(unaff_EDI + 0x269c6f);\n            FUN_000d1360(uVar7);\n            cVar4 = (char)local_1e8;\n          }" ({ "{") (expression_statement "uVar7 = gettext(unaff_EDI + 0x269c6f);" (assignment_expression "uVar7 = gettext(unaff_EDI + 0x269c6f)" (identifier "uVar7") (= "=") (call_expression "gettext(unaff_EDI + 0x269c6f)" (identifier "gettext") (argument_list "(unaff_EDI + 0x269c6f)" (( "(") (binary_expression "unaff_EDI + 0x269c6f" (identifier "unaff_EDI") (+ "+") (number_literal "0x269c6f")) () ")")))) (; ";")) (expression_statement "FUN_000d1360(uVar7);" (call_expression "FUN_000d1360(uVar7)" (identifier "FUN_000d1360") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "cVar4 = (char)local_1e8;" (assignment_expression "cVar4 = (char)local_1e8" (identifier "cVar4") (= "=") (cast_expression "(char)local_1e8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_1e8"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "*(char *)(param_1 + 0x9d) = cVar4;" (assignment_expression "*(char *)(param_1 + 0x9d) = cVar4" (pointer_expression "*(char *)(param_1 + 0x9d)" (* "*") (cast_expression "(char *)(param_1 + 0x9d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9d)" (( "(") (binary_expression "param_1 + 0x9d" (identifier "param_1") (+ "+") (number_literal "0x9d")) () ")")))) (= "=") (identifier "cVar4")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x9e) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x9e) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x9e)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x9e)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9e)" (( "(") (binary_expression "param_1 + 0x9e" (identifier "param_1") (+ "+") (number_literal "0x9e")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "puVar15 = auStack_25c;" (assignment_expression "puVar15 = auStack_25c" (identifier "puVar15") (= "=") (identifier "auStack_25c")) (; ";")) (if_statement "if (param_6 == 9) {\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }" (if "if") (parenthesized_expression "(param_6 == 9)" (( "(") (binary_expression "param_6 == 9" (identifier "param_6") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n    iVar16 = param_4[1];\n    uVar7 = gettext(unaff_EDI + 0x269cc7);\n    FUN_000d1330(uVar7,iVar16);\n    return;\n  }" ({ "{") (expression_statement "iVar16 = param_4[1];" (assignment_expression "iVar16 = param_4[1]" (identifier "iVar16") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar7 = gettext(unaff_EDI + 0x269cc7);" (assignment_expression "uVar7 = gettext(unaff_EDI + 0x269cc7)" (identifier "uVar7") (= "=") (call_expression "gettext(unaff_EDI + 0x269cc7)" (identifier "gettext") (argument_list "(unaff_EDI + 0x269cc7)" (( "(") (binary_expression "unaff_EDI + 0x269cc7" (identifier "unaff_EDI") (+ "+") (number_literal "0x269cc7")) () ")")))) (; ";")) (expression_statement "FUN_000d1330(uVar7,iVar16);" (call_expression "FUN_000d1330(uVar7,iVar16)" (identifier "FUN_000d1330") (argument_list "(uVar7,iVar16)" (( "(") (identifier "uVar7") (, ",") (identifier "iVar16") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" (identifier "local_16c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" (identifier "local_168") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_164 = 0;" (assignment_expression "local_164 = 0" (identifier "local_164") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" (identifier "local_160") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_15c = 0;" (assignment_expression "local_15c = 0" (identifier "local_15c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" (identifier "local_158") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_8 != 0) {\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_1ec = 0;\n    local_210 = (param_5 >> 5) << 2;\n    local_214 = 1 << ((byte)param_5 & 0x1f);\n    local_218 = unaff_EDI + 0x3868cf;\n    local_204 = local_218;\n    do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);\n    if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }\n  }" ({ "{") (expression_statement "local_1ec = 0;" (assignment_expression "local_1ec = 0" (identifier "local_1ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_210 = (param_5 >> 5) << 2;" (assignment_expression "local_210 = (param_5 >> 5) << 2" (identifier "local_210") (= "=") (binary_expression "(param_5 >> 5) << 2" (parenthesized_expression "(param_5 >> 5)" (( "(") (binary_expression "param_5 >> 5" (identifier "param_5") (>> ">>") (number_literal "5")) () ")")) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "local_214 = 1 << ((byte)param_5 & 0x1f);" (assignment_expression "local_214 = 1 << ((byte)param_5 & 0x1f)" (identifier "local_214") (= "=") (binary_expression "1 << ((byte)param_5 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)param_5 & 0x1f)" (( "(") (binary_expression "(byte)param_5 & 0x1f" (cast_expression "(byte)param_5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_5")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "local_218 = unaff_EDI + 0x3868cf;" (assignment_expression "local_218 = unaff_EDI + 0x3868cf" (identifier "local_218") (= "=") (binary_expression "unaff_EDI + 0x3868cf" (identifier "unaff_EDI") (+ "+") (number_literal "0x3868cf"))) (; ";")) (expression_statement "local_204 = local_218;" (assignment_expression "local_204 = local_218" (identifier "local_204") (= "=") (identifier "local_218")) (; ";")) (do_statement "do {\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_1ec);" (do "do") (compound_statement "{\n      local_1d8[0] = param_7;\n      if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }\nLAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];\n      uVar12 = local_1d8[0][3];\n      if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }\nLAB_0008dda8:\n      local_1ec = local_1ec + 1;\n      param_7 = param_7 + 6;\n    }" ({ "{") (expression_statement "local_1d8[0] = param_7;" (assignment_expression "local_1d8[0] = param_7" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_7")) (; ";")) (if_statement "if (local_1f9 != '\0') {\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }" (if "if") (parenthesized_expression "(local_1f9 != '\0')" (( "(") (binary_expression "local_1f9 != '\0'" (identifier "local_1f9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(int *)(puVar15 + -0x10) = param_7[1];\n        *(int *)(puVar15 + -0x14) = *param_7;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(undefined4 *)(puVar15 + -0x20) = param_9;\n        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;\n        cVar4 = FUN_00163e50();\n        if (cVar4 != '\0') goto LAB_0008dd2e;\n        goto LAB_0008dda8;\n      }" ({ "{") (expression_statement "*(int *)(puVar15 + -0x10) = param_7[1];" (assignment_expression "*(int *)(puVar15 + -0x10) = param_7[1]" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(int *)(puVar15 + -0x14) = *param_7;" (assignment_expression "*(int *)(puVar15 + -0x14) = *param_7" (pointer_expression "*(int *)(puVar15 + -0x14)" (* "*") (cast_expression "(int *)(puVar15 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "*(uint *)(puVar15 + -0x18) = param_5;" (assignment_expression "*(uint *)(puVar15 + -0x18) = param_5" (pointer_expression "*(uint *)(puVar15 + -0x18)" (* "*") (cast_expression "(uint *)(puVar15 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(int **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(int **)(puVar15 + -0x1c)" (* "*") (cast_expression "(int **)(puVar15 + -0x1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = param_9;" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = param_9" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_9")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8dea8;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8dea8" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8dea8")) (; ";")) (expression_statement "cVar4 = FUN_00163e50();" (assignment_expression "cVar4 = FUN_00163e50()" (identifier "cVar4") (= "=") (call_expression "FUN_00163e50()" (identifier "FUN_00163e50") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar4 != '\0') goto LAB_0008dd2e;" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0008dd2e;" (goto "goto") (statement_identifier "LAB_0008dd2e") (; ";"))) (goto_statement "goto LAB_0008dda8;" (goto "goto") (statement_identifier "LAB_0008dda8") (; ";")) (} "}"))) (labeled_statement "LAB_0008dd2e:\n      local_1e8 = local_1d8[0][2];" (statement_identifier "LAB_0008dd2e") (: ":") (expression_statement "local_1e8 = local_1d8[0][2];" (assignment_expression "local_1e8 = local_1d8[0][2]" (identifier "local_1e8") (= "=") (subscript_expression "local_1d8[0][2]" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "2") (] "]"))) (; ";"))) (expression_statement "uVar12 = local_1d8[0][3];" (assignment_expression "uVar12 = local_1d8[0][3]" (identifier "uVar12") (= "=") (subscript_expression "local_1d8[0][3]" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (uVar12 < param_11) {\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }\n      else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(uVar12 < param_11)" (( "(") (binary_expression "uVar12 < param_11" (identifier "uVar12") (< "<") (identifier "param_11")) () ")")) (compound_statement "{\n        if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }\n        local_40[0] = param_12 + uVar12 * 0x18;\n        uVar6 = (uint)*(ushort *)(local_40[0] + 6);\n        if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }\n        *(uint *)(puVar15 + -4) = uVar12;\n        *(int **)(puVar15 + -8) = local_40;\n        *(uint *)(puVar15 + -0xc) = local_1e8;\n        *(int ***)(puVar15 + -0x10) = local_1d8;\n        *(undefined4 *)(puVar15 + -0x14) = param_9;\n        *(uint *)(puVar15 + -0x18) = param_5;\n        *(int **)(puVar15 + -0x1c) = param_4;\n        *(int *)(puVar15 + -0x20) = param_1;\n                    \n        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;\n        FUN_0008c5a0();\n      }" ({ "{") (if_statement "if (param_12 == 0) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }" (if "if") (parenthesized_expression "(param_12 == 0)" (( "(") (binary_expression "param_12 == 0" (identifier "param_12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x4d;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;\n          FUN_000da200();\n        }" ({ "{") (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377" (pointer_expression "*(int *)(puVar15 + -8)" (* "*") (cast_expression "(int *)(puVar15 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x268377" (identifier "unaff_EDI") (+ "+") (number_literal "0x268377"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x4d;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x4d" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x4d")) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;" (assignment_expression "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI" (pointer_expression "*(undefined **)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "&UNK_002693fc + unaff_EDI" (pointer_expression "&UNK_002693fc" (& "&") (identifier "UNK_002693fc")) (+ "+") (identifier "unaff_EDI"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_000901d5;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_000901d5" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_000901d5" (& "&") (identifier "UNK_000901d5"))) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_40[0] = param_12 + uVar12 * 0x18;" (assignment_expression "local_40[0] = param_12 + uVar12 * 0x18" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "param_12 + uVar12 * 0x18" (identifier "param_12") (+ "+") (binary_expression "uVar12 * 0x18" (identifier "uVar12") (* "*") (number_literal "0x18")))) (; ";")) (expression_statement "uVar6 = (uint)*(ushort *)(local_40[0] + 6);" (assignment_expression "uVar6 = (uint)*(ushort *)(local_40[0] + 6)" (identifier "uVar6") (= "=") (binary_expression "(uint)*(ushort *)(local_40[0] + 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(local_40[0] + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40[0] + 6)" (( "(") (binary_expression "local_40[0] + 6" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "6")) () ")"))))) (; ";")) (if_statement "if (uVar6 < 0xff00) {\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }\n        else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }" (if "if") (parenthesized_expression "(uVar6 < 0xff00)" (( "(") (binary_expression "uVar6 < 0xff00" (identifier "uVar6") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\nLAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;\n          local_1f4 = param_4[0xf];\n          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }\n          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;\n          *(uint *)(puVar15 + -8) = uVar6;\n          *(int **)(puVar15 + -0xc) = param_4;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;\n          uVar12 = FUN_001e6ec0();\n          uVar12 = (uVar12 ^ 1) & 0xff;\n        }" ({ "{") (labeled_statement "LAB_0008de38:\n          if (uVar6 == 0) goto LAB_0008dd74;" (statement_identifier "LAB_0008de38") (: ":") (if_statement "if (uVar6 == 0) goto LAB_0008dd74;" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008dd74;" (goto "goto") (statement_identifier "LAB_0008dd74") (; ";")))) (expression_statement "local_1f4 = param_4[0xf];" (assignment_expression "local_1f4 = param_4[0xf]" (identifier "local_1f4") (= "=") (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (if_statement "if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }" (if "if") (parenthesized_expression "((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6)" (( "(") (binary_expression "(uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6" (call_expression "(uint)((int)(local_1f4 - param_4[0xe]) >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)(local_1f4 - param_4[0xe]) >> 2)" (( "(") (binary_expression "(int)(local_1f4 - param_4[0xe]) >> 2" (cast_expression "(int)(local_1f4 - param_4[0xe])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_1f4 - param_4[0xe])" (( "(") (binary_expression "local_1f4 - param_4[0xe]" (identifier "local_1f4") (- "-") (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]"))) () ")"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;\n            *(undefined4 *)(puVar15 + -0xc) = 0x50b;\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;\n            FUN_000da200();\n          }" ({ "{") (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x26868b" (pointer_expression "*(int *)(puVar15 + -8)" (* "*") (cast_expression "(int *)(puVar15 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x26868b" (identifier "unaff_EDI") (+ "+") (number_literal "0x26868b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x50b;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x50b" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x50b")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x26922f" (identifier "unaff_EDI") (+ "+") (number_literal "0x26922f"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_000902f6;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_000902f6" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_000902f6" (& "&") (identifier "UNK_000902f6"))) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;" (if "if") (parenthesized_expression "(*(int *)(param_4[0xe] + uVar6 * 4) != 0)" (( "(") (binary_expression "*(int *)(param_4[0xe] + uVar6 * 4) != 0" (pointer_expression "*(int *)(param_4[0xe] + uVar6 * 4)" (* "*") (cast_expression "(int *)(param_4[0xe] + uVar6 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[0xe] + uVar6 * 4)" (( "(") (binary_expression "param_4[0xe] + uVar6 * 4" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4"))) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008dd74;" (goto "goto") (statement_identifier "LAB_0008dd74") (; ";"))) (expression_statement "*(uint *)(puVar15 + -8) = uVar6;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar6" (pointer_expression "*(uint *)(puVar15 + -8)" (* "*") (cast_expression "(uint *)(puVar15 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(int **)(puVar15 + -0xc) = param_4;" (assignment_expression "*(int **)(puVar15 + -0xc) = param_4" (pointer_expression "*(int **)(puVar15 + -0xc)" (* "*") (cast_expression "(int **)(puVar15 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = param_2" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8de7a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8de7a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8de7a")) (; ";")) (expression_statement "uVar12 = FUN_001e6ec0();" (assignment_expression "uVar12 = FUN_001e6ec0()" (identifier "uVar12") (= "=") (call_expression "FUN_001e6ec0()" (identifier "FUN_001e6ec0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar12 = (uVar12 ^ 1) & 0xff;" (assignment_expression "uVar12 = (uVar12 ^ 1) & 0xff" (identifier "uVar12") (= "=") (binary_expression "(uVar12 ^ 1) & 0xff" (parenthesized_expression "(uVar12 ^ 1)" (( "(") (binary_expression "uVar12 ^ 1" (identifier "uVar12") (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else {\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }" (else "else") (compound_statement "{\n          if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }\nLAB_0008dd74:\n          uVar12 = 0;\n        }" ({ "{") (if_statement "if (uVar6 == 0xffff) {\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }" (if "if") (parenthesized_expression "(uVar6 == 0xffff)" (( "(") (binary_expression "uVar6 == 0xffff" (identifier "uVar6") (== "==") (number_literal "0xffff")) () ")")) (compound_statement "{\n            iVar8 = param_4[0xc];\n            if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }\n            *(uint *)(puVar15 + -8) = uVar12;\n            *(int **)(puVar15 + -0xc) = param_4;\n            *(int *)(puVar15 + -0x10) = iVar8;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;\n            uVar6 = FUN_00121c60();\n            goto LAB_0008de38;\n          }" ({ "{") (expression_statement "iVar8 = param_4[0xc];" (assignment_expression "iVar8 = param_4[0xc]" (identifier "iVar8") (= "=") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if (iVar8 == 0) {\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar8 = *param_4;\n              *(int **)(puVar15 + -0x10) = param_4;\n              pcVar1 = *(code **)(iVar8 + 0x6c);\n              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;\n              iVar8 = (*pcVar1)();\n              param_4[0xc] = iVar8;\n            }" ({ "{") (expression_statement "iVar8 = *param_4;" (assignment_expression "iVar8 = *param_4" (identifier "iVar8") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "*(int **)(puVar15 + -0x10) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x10) = param_4" (pointer_expression "*(int **)(puVar15 + -0x10)" (* "*") (cast_expression "(int **)(puVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "pcVar1 = *(code **)(iVar8 + 0x6c);" (assignment_expression "pcVar1 = *(code **)(iVar8 + 0x6c)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(iVar8 + 0x6c)" (* "*") (cast_expression "(code **)(iVar8 + 0x6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x6c)" (( "(") (binary_expression "iVar8 + 0x6c" (identifier "iVar8") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e4c6" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e4c6")) (; ";")) (expression_statement "iVar8 = (*pcVar1)();" (assignment_expression "iVar8 = (*pcVar1)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_4[0xc] = iVar8;" (assignment_expression "param_4[0xc] = iVar8" (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar15 + -8) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar12" (pointer_expression "*(uint *)(puVar15 + -8)" (* "*") (cast_expression "(uint *)(puVar15 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(int **)(puVar15 + -0xc) = param_4;" (assignment_expression "*(int **)(puVar15 + -0xc) = param_4" (pointer_expression "*(int **)(puVar15 + -0xc)" (* "*") (cast_expression "(int **)(puVar15 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8de35;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8de35" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8de35")) (; ";")) (expression_statement "uVar6 = FUN_00121c60();" (assignment_expression "uVar6 = FUN_00121c60()" (identifier "uVar6") (= "=") (call_expression "FUN_00121c60()" (identifier "FUN_00121c60") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_0008de38;" (goto "goto") (statement_identifier "LAB_0008de38") (; ";")) (} "}"))) (labeled_statement "LAB_0008dd74:\n          uVar12 = 0;" (statement_identifier "LAB_0008dd74") (: ":") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";"))) (} "}")))) (expression_statement "*(uint *)(puVar15 + -4) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -4) = uVar12" (pointer_expression "*(uint *)(puVar15 + -4)" (* "*") (cast_expression "(uint *)(puVar15 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(int **)(puVar15 + -8) = local_40;" (assignment_expression "*(int **)(puVar15 + -8) = local_40" (pointer_expression "*(int **)(puVar15 + -8)" (* "*") (cast_expression "(int **)(puVar15 + -8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(uint *)(puVar15 + -0xc) = local_1e8;" (assignment_expression "*(uint *)(puVar15 + -0xc) = local_1e8" (pointer_expression "*(uint *)(puVar15 + -0xc)" (* "*") (cast_expression "(uint *)(puVar15 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_1e8")) (; ";")) (expression_statement "*(int ***)(puVar15 + -0x10) = local_1d8;" (assignment_expression "*(int ***)(puVar15 + -0x10) = local_1d8" (pointer_expression "*(int ***)(puVar15 + -0x10)" (* "*") (cast_expression "(int ***)(puVar15 + -0x10)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_1d8")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = param_9;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = param_9" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_9")) (; ";")) (expression_statement "*(uint *)(puVar15 + -0x18) = param_5;" (assignment_expression "*(uint *)(puVar15 + -0x18) = param_5" (pointer_expression "*(uint *)(puVar15 + -0x18)" (* "*") (cast_expression "(uint *)(puVar15 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(int **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(int **)(puVar15 + -0x1c)" (* "*") (cast_expression "(int **)(puVar15 + -0x1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x20) = param_1;" (assignment_expression "*(int *)(puVar15 + -0x20) = param_1" (pointer_expression "*(int *)(puVar15 + -0x20)" (* "*") (cast_expression "(int *)(puVar15 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8dda5;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8dda5" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8dda5")) (; ";")) (expression_statement "FUN_0008c5a0();" (call_expression "FUN_0008c5a0()" (identifier "FUN_0008c5a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }\n        uVar12 = uVar12 - param_4[0x2c];\n        local_1f4 = param_4[0x30];\n        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }\n        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);\n        if (uVar12 == 0) goto LAB_00090230;\n        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }\n      }" ({ "{") (if_statement "if (uVar12 < (uint)param_4[0x2c]) {\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }" (if "if") (parenthesized_expression "(uVar12 < (uint)param_4[0x2c])" (( "(") (binary_expression "uVar12 < (uint)param_4[0x2c]" (identifier "uVar12") (< "<") (cast_expression "(uint)param_4[0x2c]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0x2c]" (identifier "param_4") ([ "[") (number_literal "0x2c") (] "]")))) () ")")) (compound_statement "{\nLAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;\n          *(undefined4 *)(puVar15 + -0xc) = 0x6a;\n          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;\n                    \n          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;\n          FUN_000da200();\n        }" ({ "{") (labeled_statement "LAB_00090230:\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;" (statement_identifier "LAB_00090230") (: ":") (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x268377" (pointer_expression "*(int *)(puVar15 + -8)" (* "*") (cast_expression "(int *)(puVar15 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x268377" (identifier "unaff_EDI") (+ "+") (number_literal "0x268377"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x6a;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x6a" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x6a")) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;" (assignment_expression "*(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI" (pointer_expression "*(undefined **)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "&UNK_002693fc + unaff_EDI" (pointer_expression "&UNK_002693fc" (& "&") (identifier "UNK_002693fc")) (+ "+") (identifier "unaff_EDI"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x9024a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x9024a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x9024a")) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar12 = uVar12 - param_4[0x2c];" (assignment_expression "uVar12 = uVar12 - param_4[0x2c]" (identifier "uVar12") (= "=") (binary_expression "uVar12 - param_4[0x2c]" (identifier "uVar12") (- "-") (subscript_expression "param_4[0x2c]" (identifier "param_4") ([ "[") (number_literal "0x2c") (] "]")))) (; ";")) (expression_statement "local_1f4 = param_4[0x30];" (assignment_expression "local_1f4 = param_4[0x30]" (identifier "local_1f4") (= "=") (subscript_expression "param_4[0x30]" (identifier "param_4") ([ "[") (number_literal "0x30") (] "]"))) (; ";")) (if_statement "if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }" (if "if") (parenthesized_expression "((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12)" (( "(") (binary_expression "(uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12" (call_expression "(uint)((int)(local_1f4 - param_4[0x2f]) >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)(local_1f4 - param_4[0x2f]) >> 2)" (( "(") (binary_expression "(int)(local_1f4 - param_4[0x2f]) >> 2" (cast_expression "(int)(local_1f4 - param_4[0x2f])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_1f4 - param_4[0x2f])" (( "(") (binary_expression "local_1f4 - param_4[0x2f]" (identifier "local_1f4") (- "-") (subscript_expression "param_4[0x2f]" (identifier "param_4") ([ "[") (number_literal "0x2f") (] "]"))) () ")"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar12")) () ")")) (compound_statement "{\n          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;\n          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;\n          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;\n                    \n          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;\n          FUN_000da200();\n        }" ({ "{") (expression_statement "*(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;" (assignment_expression "*(int *)(puVar15 + -8) = unaff_EDI + 0x26870b" (pointer_expression "*(int *)(puVar15 + -8)" (* "*") (cast_expression "(int *)(puVar15 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x26870b" (identifier "unaff_EDI") (+ "+") (number_literal "0x26870b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x8ad")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x26922f" (identifier "unaff_EDI") (+ "+") (number_literal "0x26922f"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_00090281;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_00090281" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_00090281" (& "&") (identifier "UNK_00090281"))) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);" (assignment_expression "uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(param_4[0x2f] + uVar12 * 4)" (* "*") (cast_expression "(uint *)(param_4[0x2f] + uVar12 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[0x2f] + uVar12 * 4)" (( "(") (binary_expression "param_4[0x2f] + uVar12 * 4" (subscript_expression "param_4[0x2f]" (identifier "param_4") ([ "[") (number_literal "0x2f") (] "]")) (+ "+") (binary_expression "uVar12 * 4" (identifier "uVar12") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (uVar12 == 0) goto LAB_00090230;" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00090230;" (goto "goto") (statement_identifier "LAB_00090230") (; ";"))) (if_statement "if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }\n        else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }" (if "if") (parenthesized_expression "((*(byte *)(uVar12 + 0x2a) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(uVar12 + 0x2a) & 0x10) == 0" (parenthesized_expression "(*(byte *)(uVar12 + 0x2a) & 0x10)" (( "(") (binary_expression "*(byte *)(uVar12 + 0x2a) & 0x10" (pointer_expression "*(byte *)(uVar12 + 0x2a)" (* "*") (cast_expression "(byte *)(uVar12 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x2a)" (( "(") (binary_expression "uVar12 + 0x2a" (identifier "uVar12") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = local_16c;\n          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;\nLAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }\n          local_16c = 0;\n          uVar6 = uVar12;\n          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;\n        }" ({ "{") (expression_statement "iVar8 = local_16c;" (assignment_expression "iVar8 = local_16c" (identifier "iVar8") (= "=") (identifier "local_16c")) (; ";")) (if_statement "if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;" (if "if") (parenthesized_expression "((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77))))" (( "(") (binary_expression "(((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&\n             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))" (parenthesized_expression "(((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d))" (( "(") (binary_expression "((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)" (parenthesized_expression "((local_1e8 - 10 & 0xfffffff7) != 0)" (( "(") (binary_expression "(local_1e8 - 10 & 0xfffffff7) != 0" (parenthesized_expression "(local_1e8 - 10 & 0xfffffff7)" (( "(") (binary_expression "local_1e8 - 10 & 0xfffffff7" (binary_expression "local_1e8 - 10" (identifier "local_1e8") (- "-") (number_literal "10")) (& "&") (number_literal "0xfffffff7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(2 < local_1e8 - 0x1d)" (( "(") (binary_expression "2 < local_1e8 - 0x1d" (number_literal "2") (< "<") (binary_expression "local_1e8 - 0x1d" (identifier "local_1e8") (- "-") (number_literal "0x1d"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))" (( "(") (parenthesized_expression "(local_1e8 != 0x3c && (1 < local_1e8 - 0x77))" (( "(") (binary_expression "local_1e8 != 0x3c && (1 < local_1e8 - 0x77)" (binary_expression "local_1e8 != 0x3c" (identifier "local_1e8") (!= "!=") (number_literal "0x3c")) (&& "&&") (parenthesized_expression "(1 < local_1e8 - 0x77)" (( "(") (binary_expression "1 < local_1e8 - 0x77" (number_literal "1") (< "<") (binary_expression "local_1e8 - 0x77" (identifier "local_1e8") (- "-") (number_literal "0x77"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0008df60;" (goto "goto") (statement_identifier "LAB_0008df60") (; ";"))) (labeled_statement "LAB_0008e048:\n          if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }" (statement_identifier "LAB_0008e048") (: ":") (if_statement "if (*(uint *)(param_1 + 0xb0) != uVar12) {\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0xb0) != uVar12)" (( "(") (binary_expression "*(uint *)(param_1 + 0xb0) != uVar12" (pointer_expression "*(uint *)(param_1 + 0xb0)" (* "*") (cast_expression "(uint *)(param_1 + 0xb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb0)" (( "(") (binary_expression "param_1 + 0xb0" (identifier "param_1") (+ "+") (number_literal "0xb0")) () ")")))) (!= "!=") (identifier "uVar12")) () ")")) (compound_statement "{\n            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;\n            local_16c = 0;\n            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;\n            goto LAB_0008e080;\n          }" ({ "{") (if_statement "if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0xb4) != uVar12)" (( "(") (binary_expression "*(uint *)(param_1 + 0xb4) != uVar12" (pointer_expression "*(uint *)(param_1 + 0xb4)" (* "*") (cast_expression "(uint *)(param_1 + 0xb4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb4)" (( "(") (binary_expression "param_1 + 0xb4" (identifier "param_1") (+ "+") (number_literal "0xb4")) () ")")))) (!= "!=") (identifier "uVar12")) () ")")) (goto_statement "goto LAB_0008df60;" (goto "goto") (statement_identifier "LAB_0008df60") (; ";"))) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" (identifier "local_16c") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;" (if "if") (parenthesized_expression "((iVar8 != 1) && (iVar8 == 2))" (( "(") (binary_expression "(iVar8 != 1) && (iVar8 == 2)" (parenthesized_expression "(iVar8 != 1)" (( "(") (binary_expression "iVar8 != 1" (identifier "iVar8") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(iVar8 == 2)" (( "(") (binary_expression "iVar8 == 2" (identifier "iVar8") (== "==") (number_literal "2")) () ")"))) () ")")) (goto_statement "goto LAB_0008dda8;" (goto "goto") (statement_identifier "LAB_0008dda8") (; ";"))) (goto_statement "goto LAB_0008e080;" (goto "goto") (statement_identifier "LAB_0008e080") (; ";")) (} "}")))) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" (identifier "local_16c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = uVar12;" (assignment_expression "uVar6 = uVar12" (identifier "uVar6") (= "=") (identifier "uVar12")) (; ";")) (if_statement "if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;" (if "if") (parenthesized_expression "((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2))" (( "(") (binary_expression "(iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)" (parenthesized_expression "(iVar8 == 1)" (( "(") (binary_expression "iVar8 == 1" (identifier "iVar8") (== "==") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)" (( "(") (comma_expression "uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xb0)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(param_1 + 0xb0)" (* "*") (cast_expression "(uint *)(param_1 + 0xb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb0)" (( "(") (binary_expression "param_1 + 0xb0" (identifier "param_1") (+ "+") (number_literal "0xb0")) () ")"))))) (, ",") (binary_expression "iVar8 != 2" (identifier "iVar8") (!= "!=") (number_literal "2"))) () ")"))) () ")")) (goto_statement "goto LAB_0008dfbd;" (goto "goto") (statement_identifier "LAB_0008dfbd") (; ";"))) (} "}")) (else_clause "else {\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }" (else "else") (compound_statement "{\n          *(uint *)(puVar15 + -0xc) = uVar12;\n          *(undefined4 *)(puVar15 + -0x10) = param_2;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;\n          uVar12 = FUN_001e6f30();\n          iVar8 = local_16c;\n          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;\nLAB_0008df60:\n          local_16c = 0;\n          if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\nLAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);\n          if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }\n          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;\n          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);\n          if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }\n          *(uint *)(puVar15 + -0xc) = local_1f4;\n          *(undefined1 ***)(puVar15 + -0x10) = local_154;\n          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;\n          FUN_001e7ee0();\n          iVar8 = param_4[1];\n          local_200 = local_154[0];\n          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;\n          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;\n          uVar7 = gettext();\n          *(undefined1 **)(puVar15 + -8) = local_200;\n          *(uint *)(puVar15 + -0xc) = local_1e8;\n          *(int *)(puVar15 + -0x10) = iVar8;\n          *(undefined4 *)(puVar15 + -0x14) = uVar7;\n                    \n          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;\n          FUN_000d1330();\n          if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }\n          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n          if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }\n          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;\n          if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }\nLAB_0008e248:\n          puVar15 = puVar15 + -4;\n          if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }\n        }" ({ "{") (expression_statement "*(uint *)(puVar15 + -0xc) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -0xc) = uVar12" (pointer_expression "*(uint *)(puVar15 + -0xc)" (* "*") (cast_expression "(uint *)(puVar15 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = param_2" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8df18;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8df18" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8df18")) (; ";")) (expression_statement "uVar12 = FUN_001e6f30();" (assignment_expression "uVar12 = FUN_001e6f30()" (identifier "uVar12") (= "=") (call_expression "FUN_001e6f30()" (identifier "FUN_001e6f30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar8 = local_16c;" (assignment_expression "iVar8 = local_16c" (identifier "iVar8") (= "=") (identifier "local_16c")) (; ";")) (if_statement "if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;" (if "if") (parenthesized_expression "((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0))" (( "(") (binary_expression "(((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)" (parenthesized_expression "(((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2))" (( "(") (binary_expression "((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)" (parenthesized_expression "((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c))" (( "(") (binary_expression "(((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||\n               (local_1e8 == 0x3c)" (parenthesized_expression "(((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3))" (( "(") (binary_expression "((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)" (parenthesized_expression "((local_1e8 - 10 & 0xfffffff7) == 0)" (( "(") (binary_expression "(local_1e8 - 10 & 0xfffffff7) == 0" (parenthesized_expression "(local_1e8 - 10 & 0xfffffff7)" (( "(") (binary_expression "local_1e8 - 10 & 0xfffffff7" (binary_expression "local_1e8 - 10" (identifier "local_1e8") (- "-") (number_literal "10")) (& "&") (number_literal "0xfffffff7")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_1e8 - 0x1d < 3)" (( "(") (binary_expression "local_1e8 - 0x1d < 3" (binary_expression "local_1e8 - 0x1d" (identifier "local_1e8") (- "-") (number_literal "0x1d")) (< "<") (number_literal "3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_1e8 == 0x3c)" (( "(") (binary_expression "local_1e8 == 0x3c" (identifier "local_1e8") (== "==") (number_literal "0x3c")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_1e8 - 0x77 < 2)" (( "(") (binary_expression "local_1e8 - 0x77 < 2" (binary_expression "local_1e8 - 0x77" (identifier "local_1e8") (- "-") (number_literal "0x77")) (< "<") (number_literal "2")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0008e048;" (goto "goto") (statement_identifier "LAB_0008e048") (; ";"))) (labeled_statement "LAB_0008df60:\n          local_16c = 0;" (statement_identifier "LAB_0008df60") (: ":") (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" (identifier "local_16c") (= "=") (number_literal "0")) (; ";"))) (if_statement "if ((iVar8 == 0) || (local_168 == 0)) {\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }\n          else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" (if "if") (parenthesized_expression "((iVar8 == 0) || (local_168 == 0))" (( "(") (binary_expression "(iVar8 == 0) || (local_168 == 0)" (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_168 == 0)" (( "(") (binary_expression "local_168 == 0" (identifier "local_168") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" ({ "{") (expression_statement "uVar6 = *(uint *)(param_1 + 0xb0);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xb0)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(param_1 + 0xb0)" (* "*") (cast_expression "(uint *)(param_1 + 0xb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb0)" (( "(") (binary_expression "param_1 + 0xb0" (identifier "param_1") (+ "+") (number_literal "0xb0")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" (else "else") (compound_statement "{\n            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;\n            uVar7 = gettext();\n            *(undefined4 *)(puVar15 + -0x10) = uVar7;\n            *(undefined4 *)(puVar15 + -0x14) = local_15c;\n            *(undefined4 *)(puVar15 + -0x18) = local_160;\n            *(undefined4 *)(puVar15 + -0x1c) = local_164;\n            *(int *)(puVar15 + -0x20) = local_168;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;\n            FUN_000d1a30();\n            uVar6 = *(uint *)(param_1 + 0xb0);\n          }" ({ "{") (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x2699db" (identifier "unaff_EDI") (+ "+") (number_literal "0x2699db"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8df91;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8df91" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8df91")) (; ";")) (expression_statement "uVar7 = gettext();" (assignment_expression "uVar7 = gettext()" (identifier "uVar7") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = local_15c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = local_15c" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_15c")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = local_160;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = local_160" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_160")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = local_164;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = local_164" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_164")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x20) = local_168;" (assignment_expression "*(int *)(puVar15 + -0x20) = local_168" (pointer_expression "*(int *)(puVar15 + -0x20)" (* "*") (cast_expression "(int *)(puVar15 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_168")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8dfb1" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8dfb1")) (; ";")) (expression_statement "FUN_000d1a30();" (call_expression "FUN_000d1a30()" (identifier "FUN_000d1a30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar6 = *(uint *)(param_1 + 0xb0);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xb0)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(param_1 + 0xb0)" (* "*") (cast_expression "(uint *)(param_1 + 0xb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb0)" (( "(") (binary_expression "param_1 + 0xb0" (identifier "param_1") (+ "+") (number_literal "0xb0")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_0008dfbd:\n          local_1f4 = *(uint *)(param_1 + 0xb4);" (statement_identifier "LAB_0008dfbd") (: ":") (expression_statement "local_1f4 = *(uint *)(param_1 + 0xb4);" (assignment_expression "local_1f4 = *(uint *)(param_1 + 0xb4)" (identifier "local_1f4") (= "=") (pointer_expression "*(uint *)(param_1 + 0xb4)" (* "*") (cast_expression "(uint *)(param_1 + 0xb4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb4)" (( "(") (binary_expression "param_1 + 0xb4" (identifier "param_1") (+ "+") (number_literal "0xb4")) () ")"))))) (; ";"))) (if_statement "if ((local_1f4 == 0) || (uVar6 != uVar12)) {\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }\n          else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }" (if "if") (parenthesized_expression "((local_1f4 == 0) || (uVar6 != uVar12))" (( "(") (binary_expression "(local_1f4 == 0) || (uVar6 != uVar12)" (parenthesized_expression "(local_1f4 == 0)" (( "(") (binary_expression "local_1f4 == 0" (identifier "local_1f4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar6 != uVar12)" (( "(") (binary_expression "uVar6 != uVar12" (identifier "uVar6") (!= "!=") (identifier "uVar12")) () ")"))) () ")")) (compound_statement "{\nLAB_0008e080:\n            local_1f4 = uVar12;\n            if (local_1e8 != 0x6b) goto LAB_0008dfe9;\nLAB_0008e093:\n            local_16c = 1;\n            *(uint *)(puVar15 + -0x10) = local_1f4;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;\n            FUN_001e6ba0();\n            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n            if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }\nLAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }\n          }" ({ "{") (labeled_statement "LAB_0008e080:\n            local_1f4 = uVar12;" (statement_identifier "LAB_0008e080") (: ":") (expression_statement "local_1f4 = uVar12;" (assignment_expression "local_1f4 = uVar12" (identifier "local_1f4") (= "=") (identifier "uVar12")) (; ";"))) (if_statement "if (local_1e8 != 0x6b) goto LAB_0008dfe9;" (if "if") (parenthesized_expression "(local_1e8 != 0x6b)" (( "(") (binary_expression "local_1e8 != 0x6b" (identifier "local_1e8") (!= "!=") (number_literal "0x6b")) () ")")) (goto_statement "goto LAB_0008dfe9;" (goto "goto") (statement_identifier "LAB_0008dfe9") (; ";"))) (labeled_statement "LAB_0008e093:\n            local_16c = 1;" (statement_identifier "LAB_0008e093") (: ":") (expression_statement "local_16c = 1;" (assignment_expression "local_16c = 1" (identifier "local_16c") (= "=") (number_literal "1")) (; ";"))) (expression_statement "*(uint *)(puVar15 + -0x10) = local_1f4;" (assignment_expression "*(uint *)(puVar15 + -0x10) = local_1f4" (pointer_expression "*(uint *)(puVar15 + -0x10)" (* "*") (cast_expression "(uint *)(puVar15 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_1f4")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e0ad" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e0ad")) (; ";")) (expression_statement "FUN_001e6ba0();" (call_expression "FUN_001e6ba0()" (identifier "FUN_001e6ba0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (* "*") (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (( "(") (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (( "(") (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" (identifier "BYTE_ARRAY_003868b9") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x16")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              *(undefined **)(puVar15 + -4) = &UNK_0009035c;\n              FUN_00052750();\n            }" ({ "{") (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_0009035c;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_0009035c" (pointer_expression "*(undefined **)(puVar15 + -4)" (* "*") (cast_expression "(undefined **)(puVar15 + -4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&UNK_0009035c" (& "&") (identifier "UNK_0009035c"))) (; ";")) (expression_statement "FUN_00052750();" (call_expression "FUN_00052750()" (identifier "FUN_00052750") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0008e0c3:\n            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }" (statement_identifier "LAB_0008e0c3") (: ":") (if_statement "if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {\n              local_16c = 2;\n            }" (if "if") (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0'))" (( "(") (binary_expression "(*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')" (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar8 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1a25)" (( "(") (binary_expression "iVar8 + 0x1a25" (identifier "iVar8") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar8 + 0x3ef5) != '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x3ef5) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x3ef5)" (* "*") (cast_expression "(char *)(iVar8 + 0x3ef5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x3ef5)" (( "(") (binary_expression "iVar8 + 0x3ef5" (identifier "iVar8") (+ "+") (number_literal "0x3ef5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              local_16c = 2;\n            }" ({ "{") (expression_statement "local_16c = 2;" (assignment_expression "local_16c = 2" (identifier "local_16c") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }" (else "else") (compound_statement "{\n            if (local_1e8 == 0x6b) goto LAB_0008e093;\nLAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }\n          }" ({ "{") (if_statement "if (local_1e8 == 0x6b) goto LAB_0008e093;" (if "if") (parenthesized_expression "(local_1e8 == 0x6b)" (( "(") (binary_expression "local_1e8 == 0x6b" (identifier "local_1e8") (== "==") (number_literal "0x6b")) () ")")) (goto_statement "goto LAB_0008e093;" (goto "goto") (statement_identifier "LAB_0008e093") (; ";"))) (labeled_statement "LAB_0008dfe9:\n            if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }" (statement_identifier "LAB_0008dfe9") (: ":") (if_statement "if (local_1e8 == 0x6c) {\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }" (if "if") (parenthesized_expression "(local_1e8 == 0x6c)" (( "(") (binary_expression "local_1e8 == 0x6c" (identifier "local_1e8") (== "==") (number_literal "0x6c")) () ")")) (compound_statement "{\n              local_16c = 1;\n              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);\n              if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }\n              goto LAB_0008e0c3;\n            }" ({ "{") (expression_statement "local_16c = 1;" (assignment_expression "local_16c = 1" (identifier "local_16c") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (* "*") (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (( "(") (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (( "(") (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" (identifier "BYTE_ARRAY_003868b9") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x16")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;\n                FUN_00052750();\n              }" ({ "{") (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_0008e4b2;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_0008e4b2" (pointer_expression "*(undefined **)(puVar15 + -4)" (* "*") (cast_expression "(undefined **)(puVar15 + -4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&UNK_0008e4b2" (& "&") (identifier "UNK_0008e4b2"))) (; ";")) (expression_statement "FUN_00052750();" (call_expression "FUN_00052750()" (identifier "FUN_00052750") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0008e0c3;" (goto "goto") (statement_identifier "LAB_0008e0c3") (; ";")) (} "}")))) (} "}")))) (expression_statement "local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;" (assignment_expression "local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf" (identifier "local_1f8") (= "=") (binary_expression "*(byte *)(local_1f4 + 0x28) & 0xf" (pointer_expression "*(byte *)(local_1f4 + 0x28)" (* "*") (cast_expression "(byte *)(local_1f4 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1f4 + 0x28)" (( "(") (binary_expression "local_1f4 + 0x28" (identifier "local_1f4") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xf"))) (; ";")) (expression_statement "local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);" (assignment_expression "local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10)" (identifier "local_200") (= "=") (cast_expression "(undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_200._1_3_,local_1f8 == 10)" (identifier "CONCAT31") (argument_list "(local_200._1_3_,local_1f8 == 10)" (( "(") (field_expression "local_200._1_3_" (identifier "local_200") (. ".") (field_identifier "_1_3_")) (, ",") (binary_expression "local_1f8 == 10" (identifier "local_1f8") (== "==") (number_literal "10")) () ")"))))) (; ";")) (if_statement "if (local_1f8 == 10) {\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }\n          else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" (if "if") (parenthesized_expression "(local_1f8 == 10)" (( "(") (binary_expression "local_1f8 == 10" (identifier "local_1f8") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n            *(undefined4 *)(puVar15 + -0x10) = 1;\n            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;\n            local_20c = FUN_0004f6b0();\n            if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n          }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e336;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e336" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e336")) (; ";")) (expression_statement "local_20c = FUN_0004f6b0();" (assignment_expression "local_20c = FUN_0004f6b0()" (identifier "local_20c") (= "=") (call_expression "FUN_0004f6b0()" (identifier "FUN_0004f6b0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_20c == '\0') {\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }\n            else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" (if "if") (parenthesized_expression "(local_20c == '\0')" (( "(") (binary_expression "local_20c == '\0'" (identifier "local_20c") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" ({ "{") (if_statement "if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }" (if "if") (parenthesized_expression "(local_1e8 < 0xff)" (( "(") (binary_expression "local_1e8 < 0xff" (identifier "local_1e8") (< "<") (number_literal "0xff")) () ")")) (compound_statement "{\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();\n                return;\n              }" ({ "{") (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))" (( "(") (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16)" (* "*") (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x25fbb3 + local_1e8 * 4)" (( "(") (binary_expression "unaff_EDI + 0x25fbb3 + local_1e8 * 4" (binary_expression "unaff_EDI + 0x25fbb3" (identifier "unaff_EDI") (+ "+") (number_literal "0x25fbb3")) (+ "+") (binary_expression "local_1e8 * 4" (identifier "local_1e8") (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "iVar16")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" (else "else") (compound_statement "{\n              local_22c = local_1d8[0][3];\n              local_220 = local_1d8[0][5];\n              local_21c = local_1e8 & 0x7fffffff;\n              local_230 = local_1d8[0][1];\n              local_224 = local_1d8[0][4];\n              local_234 = *local_1d8[0];\n              puVar3 = *(undefined4 **)(param_1 + 0x78);\n              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }\n              if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }\n              *(uint *)(puVar15 + -0x10) = local_1f4;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;\n              FUN_0006c210();\n              if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }\n            }" ({ "{") (expression_statement "local_22c = local_1d8[0][3];" (assignment_expression "local_22c = local_1d8[0][3]" (identifier "local_22c") (= "=") (subscript_expression "local_1d8[0][3]" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_220 = local_1d8[0][5];" (assignment_expression "local_220 = local_1d8[0][5]" (identifier "local_220") (= "=") (subscript_expression "local_1d8[0][5]" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_21c = local_1e8 & 0x7fffffff;" (assignment_expression "local_21c = local_1e8 & 0x7fffffff" (identifier "local_21c") (= "=") (binary_expression "local_1e8 & 0x7fffffff" (identifier "local_1e8") (& "&") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "local_230 = local_1d8[0][1];" (assignment_expression "local_230 = local_1d8[0][1]" (identifier "local_230") (= "=") (subscript_expression "local_1d8[0][1]" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_224 = local_1d8[0][4];" (assignment_expression "local_224 = local_1d8[0][4]" (identifier "local_224") (= "=") (subscript_expression "local_1d8[0][4]" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_234 = *local_1d8[0];" (assignment_expression "local_234 = *local_1d8[0]" (identifier "local_234") (= "=") (pointer_expression "*local_1d8[0]" (* "*") (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "puVar3 = *(undefined4 **)(param_1 + 0x78);" (assignment_expression "puVar3 = *(undefined4 **)(param_1 + 0x78)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x78)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x78)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (if_statement "if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }\n              else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }" (if "if") (parenthesized_expression "(puVar3 == *(undefined4 **)(param_1 + 0x7c))" (( "(") (binary_expression "puVar3 == *(undefined4 **)(param_1 + 0x7c)" (identifier "puVar3") (== "==") (pointer_expression "*(undefined4 **)(param_1 + 0x7c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x7c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")"))))) () ")")) (compound_statement "{\n                local_23c = *(undefined4 **)(param_1 + 0x74);\n                local_244 = (int)puVar3 - (int)local_23c;\n                uVar12 = local_244 >> 5;\n                if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }\n                puVar10 = (undefined4 *)(local_244 + (int)local_238);\n                *puVar10 = param_4;\n                puVar10[3] = local_230;\n                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;\n                puVar10[1] = param_5;\n                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;\n                puVar10[2] = local_234;\n                puVar10[7] = local_220;\n                puVar10[5] = local_22c;\n                puVar10[6] = local_224;\n                puVar10 = local_238;\n                puVar13 = local_23c;\n                if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }\n                if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }\n                *(undefined4 **)(param_1 + 0x74) = local_238;\n                *(undefined4 **)(param_1 + 0x78) = local_240;\n                *(int *)(param_1 + 0x7c) = local_248;\n              }" ({ "{") (expression_statement "local_23c = *(undefined4 **)(param_1 + 0x74);" (assignment_expression "local_23c = *(undefined4 **)(param_1 + 0x74)" (identifier "local_23c") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x74)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x74)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "local_244 = (int)puVar3 - (int)local_23c;" (assignment_expression "local_244 = (int)puVar3 - (int)local_23c" (identifier "local_244") (= "=") (binary_expression "(int)puVar3 - (int)local_23c" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (- "-") (cast_expression "(int)local_23c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_23c")))) (; ";")) (expression_statement "uVar12 = local_244 >> 5;" (assignment_expression "uVar12 = local_244 >> 5" (identifier "uVar12") (= "=") (binary_expression "local_244 >> 5" (identifier "local_244") (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (uVar12 == 0) {\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }\n                else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  local_240 = (undefined4 *)0x20;\nLAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;\n                  local_238 = (undefined4 *)FUN_00246670();\n                  local_248 = (int)local_240 + (int)local_238;\n                  local_240 = local_238 + 8;\n                }" ({ "{") (expression_statement "local_240 = (undefined4 *)0x20;" (assignment_expression "local_240 = (undefined4 *)0x20" (identifier "local_240") (= "=") (cast_expression "(undefined4 *)0x20" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x20"))) (; ";")) (labeled_statement "LAB_0008f9a2:\n                  *(undefined4 **)(puVar15 + -0x10) = local_240;" (statement_identifier "LAB_0008f9a2") (: ":") (expression_statement "*(undefined4 **)(puVar15 + -0x10) = local_240;" (assignment_expression "*(undefined4 **)(puVar15 + -0x10) = local_240" (pointer_expression "*(undefined4 **)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_240")) (; ";"))) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8f9b2" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f9b2")) (; ";")) (expression_statement "local_238 = (undefined4 *)FUN_00246670();" (assignment_expression "local_238 = (undefined4 *)FUN_00246670()" (identifier "local_238") (= "=") (cast_expression "(undefined4 *)FUN_00246670()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670()" (identifier "FUN_00246670") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_248 = (int)local_240 + (int)local_238;" (assignment_expression "local_248 = (int)local_240 + (int)local_238" (identifier "local_248") (= "=") (binary_expression "(int)local_240 + (int)local_238" (cast_expression "(int)local_240" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_240")) (+ "+") (cast_expression "(int)local_238" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_238")))) (; ";")) (expression_statement "local_240 = local_238 + 8;" (assignment_expression "local_240 = local_238 + 8" (identifier "local_240") (= "=") (binary_expression "local_238 + 8" (identifier "local_238") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }" (else "else") (compound_statement "{\n                  uVar6 = uVar12 * 2;\n                  if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0xffffffe0;\n                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;\n                  if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }\n                  local_240 = (undefined4 *)0x20;\n                  local_248 = 0;\n                  local_238 = (undefined4 *)0x0;\n                }" ({ "{") (expression_statement "uVar6 = uVar12 * 2;" (assignment_expression "uVar6 = uVar12 * 2" (identifier "uVar6") (= "=") (binary_expression "uVar12 * 2" (identifier "uVar12") (* "*") (number_literal "2"))) (; ";")) (if_statement "if (uVar6 < uVar12) {\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }" (if "if") (parenthesized_expression "(uVar6 < uVar12)" (( "(") (binary_expression "uVar6 < uVar12" (identifier "uVar6") (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n                    local_240 = (undefined4 *)0xffffffe0;\n                    goto LAB_0008f9a2;\n                  }" ({ "{") (expression_statement "local_240 = (undefined4 *)0xffffffe0;" (assignment_expression "local_240 = (undefined4 *)0xffffffe0" (identifier "local_240") (= "=") (cast_expression "(undefined4 *)0xffffffe0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffe0"))) (; ";")) (goto_statement "goto LAB_0008f9a2;" (goto "goto") (statement_identifier "LAB_0008f9a2") (; ";")) (} "}"))) (expression_statement "local_240 = (undefined4 *)0xffffffe0;" (assignment_expression "local_240 = (undefined4 *)0xffffffe0" (identifier "local_240") (= "=") (cast_expression "(undefined4 *)0xffffffe0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffe0"))) (; ";")) (if_statement "if (0x7ffffff < uVar6) goto LAB_0008f9a2;" (if "if") (parenthesized_expression "(0x7ffffff < uVar6)" (( "(") (binary_expression "0x7ffffff < uVar6" (number_literal "0x7ffffff") (< "<") (identifier "uVar6")) () ")")) (goto_statement "goto LAB_0008f9a2;" (goto "goto") (statement_identifier "LAB_0008f9a2") (; ";"))) (if_statement "if (uVar6 != 0) {\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    local_240 = (undefined4 *)(uVar12 << 6);\n                    goto LAB_0008f9a2;\n                  }" ({ "{") (expression_statement "local_240 = (undefined4 *)(uVar12 << 6);" (assignment_expression "local_240 = (undefined4 *)(uVar12 << 6)" (identifier "local_240") (= "=") (cast_expression "(undefined4 *)(uVar12 << 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 << 6)" (( "(") (binary_expression "uVar12 << 6" (identifier "uVar12") (<< "<<") (number_literal "6")) () ")")))) (; ";")) (goto_statement "goto LAB_0008f9a2;" (goto "goto") (statement_identifier "LAB_0008f9a2") (; ";")) (} "}"))) (expression_statement "local_240 = (undefined4 *)0x20;" (assignment_expression "local_240 = (undefined4 *)0x20" (identifier "local_240") (= "=") (cast_expression "(undefined4 *)0x20" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x20"))) (; ";")) (expression_statement "local_248 = 0;" (assignment_expression "local_248 = 0" (identifier "local_248") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_238 = (undefined4 *)0x0;" (assignment_expression "local_238 = (undefined4 *)0x0" (identifier "local_238") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "puVar10 = (undefined4 *)(local_244 + (int)local_238);" (assignment_expression "puVar10 = (undefined4 *)(local_244 + (int)local_238)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(local_244 + (int)local_238)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_244 + (int)local_238)" (( "(") (binary_expression "local_244 + (int)local_238" (identifier "local_244") (+ "+") (cast_expression "(int)local_238" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_238"))) () ")")))) (; ";")) (expression_statement "*puVar10 = param_4;" (assignment_expression "*puVar10 = param_4" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar10[3] = local_230;" (assignment_expression "puVar10[3] = local_230" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_230")) (; ";")) (expression_statement "puVar10[4] = puVar10[4] & 0x80000000 | local_21c;" (assignment_expression "puVar10[4] = puVar10[4] & 0x80000000 | local_21c" (subscript_expression "puVar10[4]" (identifier "puVar10") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "puVar10[4] & 0x80000000 | local_21c" (binary_expression "puVar10[4] & 0x80000000" (subscript_expression "puVar10[4]" (identifier "puVar10") ([ "[") (number_literal "4") (] "]")) (& "&") (number_literal "0x80000000")) (| "|") (identifier "local_21c"))) (; ";")) (expression_statement "puVar10[1] = param_5;" (assignment_expression "puVar10[1] = param_5" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;" (assignment_expression "*(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f" (pointer_expression "*(byte *)((int)puVar10 + 0x13)" (* "*") (cast_expression "(byte *)((int)puVar10 + 0x13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + 0x13)" (( "(") (binary_expression "(int)puVar10 + 0x13" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (binary_expression "(byte)(local_21c >> 0x18) & 0x7f" (call_expression "(byte)(local_21c >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_21c >> 0x18)" (( "(") (binary_expression "local_21c >> 0x18" (identifier "local_21c") (>> ">>") (number_literal "0x18")) () ")"))) (& "&") (number_literal "0x7f"))) (; ";")) (expression_statement "puVar10[2] = local_234;" (assignment_expression "puVar10[2] = local_234" (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_234")) (; ";")) (expression_statement "puVar10[7] = local_220;" (assignment_expression "puVar10[7] = local_220" (subscript_expression "puVar10[7]" (identifier "puVar10") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_220")) (; ";")) (expression_statement "puVar10[5] = local_22c;" (assignment_expression "puVar10[5] = local_22c" (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_22c")) (; ";")) (expression_statement "puVar10[6] = local_224;" (assignment_expression "puVar10[6] = local_224" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_224")) (; ";")) (expression_statement "puVar10 = local_238;" (assignment_expression "puVar10 = local_238" (identifier "puVar10") (= "=") (identifier "local_238")) (; ";")) (expression_statement "puVar13 = local_23c;" (assignment_expression "puVar13 = local_23c" (identifier "puVar13") (= "=") (identifier "local_23c")) (; ";")) (if_statement "if (puVar3 != local_23c) {\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }" (if "if") (parenthesized_expression "(puVar3 != local_23c)" (( "(") (binary_expression "puVar3 != local_23c" (identifier "puVar3") (!= "!=") (identifier "local_23c")) () ")")) (compound_statement "{\n                  do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);\n                  local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);\n                }" ({ "{") (do_statement "do {\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  } while (puVar3 != puVar14);" (do "do") (compound_statement "{\n                    puVar14 = puVar13 + 8;\n                    *puVar10 = *puVar13;\n                    puVar10[1] = puVar13[1];\n                    puVar10[2] = puVar13[2];\n                    puVar10[3] = puVar13[3];\n                    puVar10[4] = puVar13[4];\n                    puVar10[5] = puVar13[5];\n                    puVar10[6] = puVar13[6];\n                    puVar10[7] = puVar13[7];\n                    puVar10 = puVar10 + 8;\n                    puVar13 = puVar14;\n                  }" ({ "{") (expression_statement "puVar14 = puVar13 + 8;" (assignment_expression "puVar14 = puVar13 + 8" (identifier "puVar14") (= "=") (binary_expression "puVar13 + 8" (identifier "puVar13") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*puVar10 = *puVar13;" (assignment_expression "*puVar10 = *puVar13" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar10[1] = puVar13[1];" (assignment_expression "puVar10[1] = puVar13[1]" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar10[2] = puVar13[2];" (assignment_expression "puVar10[2] = puVar13[2]" (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar10[3] = puVar13[3];" (assignment_expression "puVar10[3] = puVar13[3]" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar10[4] = puVar13[4];" (assignment_expression "puVar10[4] = puVar13[4]" (subscript_expression "puVar10[4]" (identifier "puVar10") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar10[5] = puVar13[5];" (assignment_expression "puVar10[5] = puVar13[5]" (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar13[5]" (identifier "puVar13") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar10[6] = puVar13[6];" (assignment_expression "puVar10[6] = puVar13[6]" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar13[6]" (identifier "puVar13") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar10[7] = puVar13[7];" (assignment_expression "puVar10[7] = puVar13[7]" (subscript_expression "puVar10[7]" (identifier "puVar10") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar13[7]" (identifier "puVar13") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar10 = puVar10 + 8;" (assignment_expression "puVar10 = puVar10 + 8" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" (identifier "puVar13") (= "=") (identifier "puVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar3 != puVar14)" (( "(") (binary_expression "puVar3 != puVar14" (identifier "puVar3") (!= "!=") (identifier "puVar14")) () ")")) (; ";")) (expression_statement "local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);" (assignment_expression "local_240 = (undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40)" (identifier "local_240") (= "=") (cast_expression "(undefined4 *)\n                              ((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40)" (( "(") (binary_expression "(int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40" (binary_expression "(int)local_238 +\n                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U)" (cast_expression "(int)local_238" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_238")) (+ "+") (parenthesized_expression "((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U)" (( "(") (binary_expression "(int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U" (binary_expression "(int)puVar3 + (-0x20 - (int)local_23c)" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (+ "+") (parenthesized_expression "(-0x20 - (int)local_23c)" (( "(") (binary_expression "-0x20 - (int)local_23c" (number_literal "-0x20") (- "-") (cast_expression "(int)local_23c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_23c"))) () ")"))) (& "&") (number_literal "0xffffffe0U")) () ")"))) (+ "+") (number_literal "0x40")) () ")")))) (; ";")) (} "}"))) (if_statement "if (local_23c != (undefined4 *)0x0) {\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }" (if "if") (parenthesized_expression "(local_23c != (undefined4 *)0x0)" (( "(") (binary_expression "local_23c != (undefined4 *)0x0" (identifier "local_23c") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  *(undefined4 **)(puVar15 + -0x10) = local_23c;\n                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;\n                  FUN_00248220();\n                }" ({ "{") (expression_statement "*(undefined4 **)(puVar15 + -0x10) = local_23c;" (assignment_expression "*(undefined4 **)(puVar15 + -0x10) = local_23c" (pointer_expression "*(undefined4 **)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_23c")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8faba;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8faba" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8faba")) (; ";")) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" (identifier "FUN_00248220") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 **)(param_1 + 0x74) = local_238;" (assignment_expression "*(undefined4 **)(param_1 + 0x74) = local_238" (pointer_expression "*(undefined4 **)(param_1 + 0x74)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x74)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")")))) (= "=") (identifier "local_238")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x78) = local_240;" (assignment_expression "*(undefined4 **)(param_1 + 0x78) = local_240" (pointer_expression "*(undefined4 **)(param_1 + 0x78)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x78)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (identifier "local_240")) (; ";")) (expression_statement "*(int *)(param_1 + 0x7c) = local_248;" (assignment_expression "*(int *)(param_1 + 0x7c) = local_248" (pointer_expression "*(int *)(param_1 + 0x7c)" (* "*") (cast_expression "(int *)(param_1 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (identifier "local_248")) (; ";")) (} "}")) (else_clause "else {\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }" (else "else") (compound_statement "{\n                puVar3[2] = local_234;\n                puVar3[3] = local_230;\n                *puVar3 = param_4;\n                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;\n                puVar3[1] = param_5;\n                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;\n                puVar3[5] = local_22c;\n                puVar3[6] = local_224;\n                puVar3[7] = local_220;\n                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;\n              }" ({ "{") (expression_statement "puVar3[2] = local_234;" (assignment_expression "puVar3[2] = local_234" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_234")) (; ";")) (expression_statement "puVar3[3] = local_230;" (assignment_expression "puVar3[3] = local_230" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_230")) (; ";")) (expression_statement "*puVar3 = param_4;" (assignment_expression "*puVar3 = param_4" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar3[4] = puVar3[4] & 0x80000000 | local_21c;" (assignment_expression "puVar3[4] = puVar3[4] & 0x80000000 | local_21c" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "puVar3[4] & 0x80000000 | local_21c" (binary_expression "puVar3[4] & 0x80000000" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (& "&") (number_literal "0x80000000")) (| "|") (identifier "local_21c"))) (; ";")) (expression_statement "puVar3[1] = param_5;" (assignment_expression "puVar3[1] = param_5" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;" (assignment_expression "*(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f" (pointer_expression "*(byte *)((int)puVar3 + 0x13)" (* "*") (cast_expression "(byte *)((int)puVar3 + 0x13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar3 + 0x13)" (( "(") (binary_expression "(int)puVar3 + 0x13" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (binary_expression "(byte)(local_1e8 >> 0x18) & 0x7f" (call_expression "(byte)(local_1e8 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_1e8 >> 0x18)" (( "(") (binary_expression "local_1e8 >> 0x18" (identifier "local_1e8") (>> ">>") (number_literal "0x18")) () ")"))) (& "&") (number_literal "0x7f"))) (; ";")) (expression_statement "puVar3[5] = local_22c;" (assignment_expression "puVar3[5] = local_22c" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_22c")) (; ";")) (expression_statement "puVar3[6] = local_224;" (assignment_expression "puVar3[6] = local_224" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_224")) (; ";")) (expression_statement "puVar3[7] = local_220;" (assignment_expression "puVar3[7] = local_220" (subscript_expression "puVar3[7]" (identifier "puVar3") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_220")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x78) = puVar3 + 8;" (assignment_expression "*(undefined4 **)(param_1 + 0x78) = puVar3 + 8" (pointer_expression "*(undefined4 **)(param_1 + 0x78)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x78)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8"))) (; ";")) (} "}")))) (if_statement "if (local_1e8 - 0xb < 3) {\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }" (if "if") (parenthesized_expression "(local_1e8 - 0xb < 3)" (( "(") (binary_expression "local_1e8 - 0xb < 3" (binary_expression "local_1e8 - 0xb" (identifier "local_1e8") (- "-") (number_literal "0xb")) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n                local_224 = param_4[0x67];\n                local_22c = param_4[0x66];\n                iVar9 = param_4[100];\n                iVar8 = local_224 + (local_22c - iVar9) * 8;\n                uVar12 = iVar8 - param_4[0x65];\n                if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }\n                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;\n              }" ({ "{") (expression_statement "local_224 = param_4[0x67];" (assignment_expression "local_224 = param_4[0x67]" (identifier "local_224") (= "=") (subscript_expression "param_4[0x67]" (identifier "param_4") ([ "[") (number_literal "0x67") (] "]"))) (; ";")) (expression_statement "local_22c = param_4[0x66];" (assignment_expression "local_22c = param_4[0x66]" (identifier "local_22c") (= "=") (subscript_expression "param_4[0x66]" (identifier "param_4") ([ "[") (number_literal "0x66") (] "]"))) (; ";")) (expression_statement "iVar9 = param_4[100];" (assignment_expression "iVar9 = param_4[100]" (identifier "iVar9") (= "=") (subscript_expression "param_4[100]" (identifier "param_4") ([ "[") (number_literal "100") (] "]"))) (; ";")) (expression_statement "iVar8 = local_224 + (local_22c - iVar9) * 8;" (assignment_expression "iVar8 = local_224 + (local_22c - iVar9) * 8" (identifier "iVar8") (= "=") (binary_expression "local_224 + (local_22c - iVar9) * 8" (identifier "local_224") (+ "+") (binary_expression "(local_22c - iVar9) * 8" (parenthesized_expression "(local_22c - iVar9)" (( "(") (binary_expression "local_22c - iVar9" (identifier "local_22c") (- "-") (identifier "iVar9")) () ")")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "uVar12 = iVar8 - param_4[0x65];" (assignment_expression "uVar12 = iVar8 - param_4[0x65]" (identifier "uVar12") (= "=") (binary_expression "iVar8 - param_4[0x65]" (identifier "iVar8") (- "-") (subscript_expression "param_4[0x65]" (identifier "param_4") ([ "[") (number_literal "0x65") (] "]")))) (; ";")) (if_statement "if (uVar12 <= param_5) {\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }" (if "if") (parenthesized_expression "(uVar12 <= param_5)" (( "(") (binary_expression "uVar12 <= param_5" (identifier "uVar12") (<= "<=") (identifier "param_5")) () ")")) (compound_statement "{\n                  iVar11 = param_4[0x65] + param_5 + 1;\n                  if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }\n                }" ({ "{") (expression_statement "iVar11 = param_4[0x65] + param_5 + 1;" (assignment_expression "iVar11 = param_4[0x65] + param_5 + 1" (identifier "iVar11") (= "=") (binary_expression "param_4[0x65] + param_5 + 1" (binary_expression "param_4[0x65] + param_5" (subscript_expression "param_4[0x65]" (identifier "param_4") ([ "[") (number_literal "0x65") (] "]")) (+ "+") (identifier "param_5")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_5 + 1 < uVar12) {\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }\n                  else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }" (if "if") (parenthesized_expression "(param_5 + 1 < uVar12)" (( "(") (binary_expression "param_5 + 1 < uVar12" (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1")) (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n                    iVar8 = iVar11 + 0x1f;\n                    if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }\n                    iVar8 = iVar9 + (iVar8 >> 5) * 4;\n                    iVar11 = iVar11 % 0x20;\n                    if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }\n                    param_4[0x66] = iVar8;\n                    param_4[0x67] = iVar11;\n                  }" ({ "{") (expression_statement "iVar8 = iVar11 + 0x1f;" (assignment_expression "iVar8 = iVar11 + 0x1f" (identifier "iVar8") (= "=") (binary_expression "iVar11 + 0x1f" (identifier "iVar11") (+ "+") (number_literal "0x1f"))) (; ";")) (if_statement "if (-1 < iVar11) {\n                      iVar8 = iVar11;\n                    }" (if "if") (parenthesized_expression "(-1 < iVar11)" (( "(") (binary_expression "-1 < iVar11" (number_literal "-1") (< "<") (identifier "iVar11")) () ")")) (compound_statement "{\n                      iVar8 = iVar11;\n                    }" ({ "{") (expression_statement "iVar8 = iVar11;" (assignment_expression "iVar8 = iVar11" (identifier "iVar8") (= "=") (identifier "iVar11")) (; ";")) (} "}"))) (expression_statement "iVar8 = iVar9 + (iVar8 >> 5) * 4;" (assignment_expression "iVar8 = iVar9 + (iVar8 >> 5) * 4" (identifier "iVar8") (= "=") (binary_expression "iVar9 + (iVar8 >> 5) * 4" (identifier "iVar9") (+ "+") (binary_expression "(iVar8 >> 5) * 4" (parenthesized_expression "(iVar8 >> 5)" (( "(") (binary_expression "iVar8 >> 5" (identifier "iVar8") (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar11 = iVar11 % 0x20;" (assignment_expression "iVar11 = iVar11 % 0x20" (identifier "iVar11") (= "=") (binary_expression "iVar11 % 0x20" (identifier "iVar11") (% "%") (number_literal "0x20"))) (; ";")) (if_statement "if (iVar11 < 0) {\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }" (if "if") (parenthesized_expression "(iVar11 < 0)" (( "(") (binary_expression "iVar11 < 0" (identifier "iVar11") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                      iVar11 = iVar11 + 0x20;\n                      iVar8 = iVar8 + -4;\n                    }" ({ "{") (expression_statement "iVar11 = iVar11 + 0x20;" (assignment_expression "iVar11 = iVar11 + 0x20" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 0x20" (identifier "iVar11") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "iVar8 = iVar8 + -4;" (assignment_expression "iVar8 = iVar8 + -4" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -4" (identifier "iVar8") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (expression_statement "param_4[0x66] = iVar8;" (assignment_expression "param_4[0x66] = iVar8" (subscript_expression "param_4[0x66]" (identifier "param_4") ([ "[") (number_literal "0x66") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "param_4[0x67] = iVar11;" (assignment_expression "param_4[0x67] = iVar11" (subscript_expression "param_4[0x67]" (identifier "param_4") ([ "[") (number_literal "0x67") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (} "}")) (else_clause "else {\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }" (else "else") (compound_statement "{\n                    *(undefined4 *)(puVar15 + -0x10) = 0;\n                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;\n                    *(int *)(puVar15 + -0x18) = local_224;\n                    *(int *)(puVar15 + -0x1c) = local_22c;\n                    *(int **)(puVar15 + -0x20) = param_4 + 100;\n                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;\n                    local_254 = local_22c;\n                    local_250 = local_224;\n                    FUN_000ab3a0();\n                    iVar9 = param_4[100];\n                  }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x14) = iVar11 - iVar8;" (assignment_expression "*(int *)(puVar15 + -0x14) = iVar11 - iVar8" (pointer_expression "*(int *)(puVar15 + -0x14)" (* "*") (cast_expression "(int *)(puVar15 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "iVar11 - iVar8" (identifier "iVar11") (- "-") (identifier "iVar8"))) (; ";")) (expression_statement "*(int *)(puVar15 + -0x18) = local_224;" (assignment_expression "*(int *)(puVar15 + -0x18) = local_224" (pointer_expression "*(int *)(puVar15 + -0x18)" (* "*") (cast_expression "(int *)(puVar15 + -0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_224")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x1c) = local_22c;" (assignment_expression "*(int *)(puVar15 + -0x1c) = local_22c" (pointer_expression "*(int *)(puVar15 + -0x1c)" (* "*") (cast_expression "(int *)(puVar15 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_22c")) (; ";")) (expression_statement "*(int **)(puVar15 + -0x20) = param_4 + 100;" (assignment_expression "*(int **)(puVar15 + -0x20) = param_4 + 100" (pointer_expression "*(int **)(puVar15 + -0x20)" (* "*") (cast_expression "(int **)(puVar15 + -0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (binary_expression "param_4 + 100" (identifier "param_4") (+ "+") (number_literal "100"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x900aa;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x900aa" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x900aa")) (; ";")) (expression_statement "local_254 = local_22c;" (assignment_expression "local_254 = local_22c" (identifier "local_254") (= "=") (identifier "local_22c")) (; ";")) (expression_statement "local_250 = local_224;" (assignment_expression "local_250 = local_224" (identifier "local_250") (= "=") (identifier "local_224")) (; ";")) (expression_statement "FUN_000ab3a0();" (call_expression "FUN_000ab3a0()" (identifier "FUN_000ab3a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar9 = param_4[100];" (assignment_expression "iVar9 = param_4[100]" (identifier "iVar9") (= "=") (subscript_expression "param_4[100]" (identifier "param_4") ([ "[") (number_literal "100") (] "]"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "*(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;" (assignment_expression "*(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214" (pointer_expression "*(uint *)(iVar9 + local_210)" (* "*") (cast_expression "(uint *)(iVar9 + local_210)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + local_210)" (( "(") (binary_expression "iVar9 + local_210" (identifier "iVar9") (+ "+") (identifier "local_210")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar9 + local_210) | local_214" (pointer_expression "*(uint *)(iVar9 + local_210)" (* "*") (cast_expression "(uint *)(iVar9 + local_210)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + local_210)" (( "(") (binary_expression "iVar9 + local_210" (identifier "iVar9") (+ "+") (identifier "local_210")) () ")")))) (| "|") (identifier "local_214"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar15 + -0x10) = local_1f4;" (assignment_expression "*(uint *)(puVar15 + -0x10) = local_1f4" (pointer_expression "*(uint *)(puVar15 + -0x10)" (* "*") (cast_expression "(uint *)(puVar15 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_1f4")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8f2ad" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f2ad")) (; ";")) (expression_statement "FUN_0006c210();" (call_expression "FUN_0006c210()" (identifier "FUN_0006c210") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_1e8 < 0xff) {\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }" (if "if") (parenthesized_expression "(local_1e8 < 0xff)" (( "(") (binary_expression "local_1e8 < 0xff" (identifier "local_1e8") (< "<") (number_literal "0xff")) () ")")) (compound_statement "{\n                    \n                    \n                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();\n                return;\n              }" ({ "{") (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))" (( "(") (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16)" (* "*") (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x25ffaf + local_1e8 * 4)" (( "(") (binary_expression "unaff_EDI + 0x25ffaf + local_1e8 * 4" (binary_expression "unaff_EDI + 0x25ffaf" (identifier "unaff_EDI") (+ "+") (number_literal "0x25ffaf")) (+ "+") (binary_expression "local_1e8 * 4" (identifier "local_1e8") (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "iVar16")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" (else "else") (if_statement "if (local_1e8 < 0xff) {\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" (if "if") (parenthesized_expression "(local_1e8 < 0xff)" (( "(") (binary_expression "local_1e8 < 0xff" (identifier "local_1e8") (< "<") (number_literal "0xff")) () ")")) (compound_statement "{\n                    \n                    \n            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();\n            return;\n          }" ({ "{") (expression_statement "(*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();" (call_expression "(*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))" (( "(") (pointer_expression "*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16)" (* "*") (cast_expression "(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16)" (( "(") (binary_expression "*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16" (pointer_expression "*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI)" (* "*") (cast_expression "(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI)" (( "(") (binary_expression "&UNK_0025f53f + local_1e8 * 4 + unaff_EDI" (binary_expression "&UNK_0025f53f + local_1e8 * 4" (pointer_expression "&UNK_0025f53f" (& "&") (identifier "UNK_0025f53f")) (+ "+") (binary_expression "local_1e8 * 4" (identifier "local_1e8") (* "*") (number_literal "4"))) (+ "+") (identifier "unaff_EDI")) () ")")))) (+ "+") (identifier "iVar16")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))))) (expression_statement "*(uint *)(puVar15 + -0xc) = local_1f4;" (assignment_expression "*(uint *)(puVar15 + -0xc) = local_1f4" (pointer_expression "*(uint *)(puVar15 + -0xc)" (* "*") (cast_expression "(uint *)(puVar15 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_1f4")) (; ";")) (expression_statement "*(undefined1 ***)(puVar15 + -0x10) = local_154;" (assignment_expression "*(undefined1 ***)(puVar15 + -0x10) = local_154" (pointer_expression "*(undefined1 ***)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined1 ***)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined1 ***" (type_identifier "undefined1") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_154")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8e377;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8e377" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e377")) (; ";")) (expression_statement "FUN_001e7ee0();" (call_expression "FUN_001e7ee0()" (identifier "FUN_001e7ee0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = param_4[1];" (assignment_expression "iVar8 = param_4[1]" (identifier "iVar8") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_200 = local_154[0];" (assignment_expression "local_200 = local_154[0]" (identifier "local_200") (= "=") (subscript_expression "local_154[0]" (identifier "local_154") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;" (assignment_expression "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb" (pointer_expression "*(int *)(puVar15 + -0x14)" (* "*") (cast_expression "(int *)(puVar15 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x269ceb" (identifier "unaff_EDI") (+ "+") (number_literal "0x269ceb"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e395;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e395" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8e395")) (; ";")) (expression_statement "uVar7 = gettext();" (assignment_expression "uVar7 = gettext()" (identifier "uVar7") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -8) = local_200;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = local_200" (pointer_expression "*(undefined1 **)(puVar15 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_200")) (; ";")) (expression_statement "*(uint *)(puVar15 + -0xc) = local_1e8;" (assignment_expression "*(uint *)(puVar15 + -0xc) = local_1e8" (pointer_expression "*(uint *)(puVar15 + -0xc)" (* "*") (cast_expression "(uint *)(puVar15 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_1e8")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = uVar7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = uVar7" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e3ac" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8e3ac")) (; ";")) (expression_statement "FUN_000d1330();" (call_expression "FUN_000d1330()" (identifier "FUN_000d1330") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_154[0] != local_14c) {\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }" (if "if") (parenthesized_expression "(local_154[0] != local_14c)" (( "(") (binary_expression "local_154[0] != local_14c" (subscript_expression "local_154[0]" (identifier "local_154") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_14c")) () ")")) (compound_statement "{\n            *(undefined1 **)(puVar15 + -0x14) = local_154[0];\n            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;\n            FUN_00248220();\n          }" ({ "{") (expression_statement "*(undefined1 **)(puVar15 + -0x14) = local_154[0];" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = local_154[0]" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (subscript_expression "local_154[0]" (identifier "local_154") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e3c8" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8e3c8")) (; ";")) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" (identifier "FUN_00248220") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);" (assignment_expression "iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (* "*") (cast_expression "(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8)" (( "(") (binary_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16)" (( "(") (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI + 0x16" (binary_expression "BYTE_ARRAY_003868b9 + unaff_EDI" (identifier "BYTE_ARRAY_003868b9") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x16")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;\n            *(undefined4 *)(puVar15 + -0x10) = 0x5c;\n            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;\n                    \n            *(undefined4 *)(puVar15 + -0x18) = 0x90264;\n            FUN_000da200();\n          }" ({ "{") (expression_statement "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;" (assignment_expression "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f" (pointer_expression "*(int *)(puVar15 + -0xc)" (* "*") (cast_expression "(int *)(puVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x26878f" (identifier "unaff_EDI") (+ "+") (number_literal "0x26878f"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x5c" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;" (assignment_expression "*(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654" (pointer_expression "*(int *)(puVar15 + -0x14)" (* "*") (cast_expression "(int *)(puVar15 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x254654" (identifier "unaff_EDI") (+ "+") (number_literal "0x254654"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x90264;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x90264" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x90264")) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;" (if "if") (parenthesized_expression "(*(char *)(iVar8 + 0x3fed) == '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x3fed) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x3fed)" (* "*") (cast_expression "(char *)(iVar8 + 0x3fed)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x3fed)" (( "(") (binary_expression "iVar8 + 0x3fed" (identifier "iVar8") (+ "+") (number_literal "0x3fed")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0008e248;" (goto "goto") (statement_identifier "LAB_0008e248") (; ";"))) (if_statement "if (param_5 == param_4[0x52]) {\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }\n          else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }" (if "if") (parenthesized_expression "(param_5 == param_4[0x52])" (( "(") (binary_expression "param_5 == param_4[0x52]" (identifier "param_5") (== "==") (subscript_expression "param_4[0x52]" (identifier "param_4") ([ "[") (number_literal "0x52") (] "]"))) () ")")) (compound_statement "{\n            if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }\n            if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }\n            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }\n          }" ({ "{") (if_statement "if (local_1e8 != 0x26) {\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }" (if "if") (parenthesized_expression "(local_1e8 != 0x26)" (( "(") (binary_expression "local_1e8 != 0x26" (identifier "local_1e8") (!= "!=") (number_literal "0x26")) () ")")) (compound_statement "{\nLAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;\n              FUN_0008c440();\n              goto joined_r0x0008e46f;\n            }" ({ "{") (labeled_statement "LAB_0008e450:\n                    \n              *(undefined4 *)(puVar15 + -8) = 0x8e463;" (statement_identifier "LAB_0008e450") (: ":") (expression_statement "*(undefined4 *)(puVar15 + -8) = 0x8e463;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0x8e463" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x8e463")) (; ";"))) (expression_statement "FUN_0008c440();" (call_expression "FUN_0008c440()" (identifier "FUN_0008c440") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto joined_r0x0008e46f;" (goto "goto") (statement_identifier "joined_r0x0008e46f") (; ";")) (} "}"))) (if_statement "if (local_1f8 == 10) {\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }" (if "if") (parenthesized_expression "(local_1f8 == 10)" (( "(") (binary_expression "local_1f8 == 10" (identifier "local_1f8") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }\n              goto LAB_0008e450;\n            }" ({ "{") (if_statement "if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }" (if "if") (parenthesized_expression "(((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0'))" (( "(") (binary_expression "((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')" (parenthesized_expression "((*(byte *)(param_1 + 8) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 8) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 8) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 8) & 2" (pointer_expression "*(byte *)(param_1 + 8)" (* "*") (cast_expression "(byte *)(param_1 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar8 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1a25)" (( "(") (binary_expression "iVar8 + 0x1a25" (identifier "iVar8") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                bVar5 = *(byte *)(iVar8 + 0x2931);\njoined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;\n              }" ({ "{") (expression_statement "bVar5 = *(byte *)(iVar8 + 0x2931);" (assignment_expression "bVar5 = *(byte *)(iVar8 + 0x2931)" (identifier "bVar5") (= "=") (pointer_expression "*(byte *)(iVar8 + 0x2931)" (* "*") (cast_expression "(byte *)(iVar8 + 0x2931)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2931)" (( "(") (binary_expression "iVar8 + 0x2931" (identifier "iVar8") (+ "+") (number_literal "0x2931")) () ")"))))) (; ";")) (labeled_statement "joined_r0x0008e445:\n                if (bVar5 == 0) goto LAB_0008e248;" (statement_identifier "joined_r0x0008e445") (: ":") (if_statement "if (bVar5 == 0) goto LAB_0008e248;" (if "if") (parenthesized_expression "(bVar5 == 0)" (( "(") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008e248;" (goto "goto") (statement_identifier "LAB_0008e248") (; ";")))) (} "}"))) (goto_statement "goto LAB_0008e450;" (goto "goto") (statement_identifier "LAB_0008e450") (; ";")) (} "}"))) (if_statement "if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }" (if "if") (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0'))" (( "(") (binary_expression "(*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')" (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) != '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar8 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1a25)" (( "(") (binary_expression "iVar8 + 0x1a25" (identifier "iVar8") (+ "+") (number_literal "0x1a25")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar8 + 0x2931) != '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x2931) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x2931)" (* "*") (cast_expression "(char *)(iVar8 + 0x2931)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2931)" (( "(") (binary_expression "iVar8 + 0x2931" (identifier "iVar8") (+ "+") (number_literal "0x2931")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              bVar5 = *(byte *)(local_1f4 + 0x2a);\n              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);\n              if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;\n            }" ({ "{") (expression_statement "bVar5 = *(byte *)(local_1f4 + 0x2a);" (assignment_expression "bVar5 = *(byte *)(local_1f4 + 0x2a)" (identifier "bVar5") (= "=") (pointer_expression "*(byte *)(local_1f4 + 0x2a)" (* "*") (cast_expression "(byte *)(local_1f4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1f4 + 0x2a)" (( "(") (binary_expression "local_1f4 + 0x2a" (identifier "local_1f4") (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (expression_statement "local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);" (assignment_expression "local_1f8 = CONCAT31(local_1f8._1_3_,bVar5)" (identifier "local_1f8") (= "=") (call_expression "CONCAT31(local_1f8._1_3_,bVar5)" (identifier "CONCAT31") (argument_list "(local_1f8._1_3_,bVar5)" (( "(") (field_expression "local_1f8._1_3_" (identifier "local_1f8") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar5") () ")")))) (; ";")) (if_statement "if ((bVar5 & 7) == 0) {\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }\n              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;" (if "if") (parenthesized_expression "((bVar5 & 7) == 0)" (( "(") (binary_expression "(bVar5 & 7) == 0" (parenthesized_expression "(bVar5 & 7)" (( "(") (binary_expression "bVar5 & 7" (identifier "bVar5") (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));\n                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;\n                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;\n                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;\n              }" ({ "{") (expression_statement "local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));" (assignment_expression "local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b))" (identifier "local_1f8") (= "=") (call_expression "CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b))" (identifier "CONCAT31") (argument_list "(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b))" (( "(") (field_expression "local_1f8._1_3_" (identifier "local_1f8") (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*(byte *)(local_1f4 + 0x2b)" (* "*") (cast_expression "(byte *)(local_1f4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1f4 + 0x2b)" (( "(") (binary_expression "local_1f4 + 0x2b" (identifier "local_1f4") (+ "+") (number_literal "0x2b")) () ")")))) () ")")))) (; ";")) (expression_statement "bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;" (assignment_expression "bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1" (identifier "bVar5") (= "=") (binary_expression "*(byte *)(local_1f4 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(local_1f4 + 0x2b) >> 5" (pointer_expression "*(byte *)(local_1f4 + 0x2b)" (* "*") (cast_expression "(byte *)(local_1f4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1f4 + 0x2b)" (( "(") (binary_expression "local_1f4 + 0x2b" (identifier "local_1f4") (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;" (if "if") (parenthesized_expression "((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0))" (( "(") (binary_expression "(*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)" (parenthesized_expression "(*(int *)(local_1f4 + 0xc) == 0xfff1)" (( "(") (binary_expression "*(int *)(local_1f4 + 0xc) == 0xfff1" (pointer_expression "*(int *)(local_1f4 + 0xc)" (* "*") (cast_expression "(int *)(local_1f4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1f4 + 0xc)" (( "(") (binary_expression "local_1f4 + 0xc" (identifier "local_1f4") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0xfff1")) () ")")) (&& "&&") (parenthesized_expression "(bVar5 == 0)" (( "(") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0008e450;" (goto "goto") (statement_identifier "LAB_0008e450") (; ";"))) (if_statement "if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;" (if "if") (parenthesized_expression "(*(int *)(local_1f4 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(local_1f4 + 0xc) == 0" (pointer_expression "*(int *)(local_1f4 + 0xc)" (* "*") (cast_expression "(int *)(local_1f4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1f4 + 0xc)" (( "(") (binary_expression "local_1f4 + 0xc" (identifier "local_1f4") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x0008e445;" (goto "goto") (statement_identifier "joined_r0x0008e445") (; ";"))) (} "}")) (else_clause "else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;" (else "else") (if_statement "if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;" (if "if") (parenthesized_expression "((byte)((bVar5 & 7) - 3) < 2)" (( "(") (binary_expression "(byte)((bVar5 & 7) - 3) < 2" (call_expression "(byte)((bVar5 & 7) - 3)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((bVar5 & 7) - 3)" (( "(") (binary_expression "(bVar5 & 7) - 3" (parenthesized_expression "(bVar5 & 7)" (( "(") (binary_expression "bVar5 & 7" (identifier "bVar5") (& "&") (number_literal "7")) () ")")) (- "-") (number_literal "3")) () ")"))) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_0008e450;" (goto "goto") (statement_identifier "LAB_0008e450") (; ";"))))) (} "}"))) (} "}")) (else_clause "else {\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }" (else "else") (compound_statement "{\njoined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }\n            local_1f8 = 0;\n            if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }\n          }" ({ "{") (labeled_statement "joined_r0x0008e46f:\n            if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }" (statement_identifier "joined_r0x0008e46f") (: ":") (if_statement "if (local_1e8 - 0xf < 0x50) {\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }" (if "if") (parenthesized_expression "(local_1e8 - 0xf < 0x50)" (( "(") (binary_expression "local_1e8 - 0xf < 0x50" (binary_expression "local_1e8 - 0xf" (identifier "local_1e8") (- "-") (number_literal "0xf")) (< "<") (number_literal "0x50")) () ")")) (compound_statement "{\n                    \n                    \n              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();\n              return;\n            }" ({ "{") (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))" (( "(") (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16)" (* "*") (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4)" (( "(") (binary_expression "unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4" (binary_expression "unaff_EDI + 0x25f93b" (identifier "unaff_EDI") (+ "+") (number_literal "0x25f93b")) (+ "+") (binary_expression "(local_1e8 - 0xf) * 4" (parenthesized_expression "(local_1e8 - 0xf)" (( "(") (binary_expression "local_1e8 - 0xf" (identifier "local_1e8") (- "-") (number_literal "0xf")) () ")")) (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "iVar16")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "local_1f8 = 0;" (assignment_expression "local_1f8 = 0" (identifier "local_1f8") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }" (if "if") (parenthesized_expression "((((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52]))))" (( "(") (binary_expression "(((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&\n               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))" (parenthesized_expression "(((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0))" (( "(") (binary_expression "((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&\n                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)" (parenthesized_expression "((local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0))" (( "(") (binary_expression "(local_1e8 - 0x2f < 0x12) &&\n                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)" (parenthesized_expression "(local_1e8 - 0x2f < 0x12)" (( "(") (binary_expression "local_1e8 - 0x2f < 0x12" (binary_expression "local_1e8 - 0x2f" (identifier "local_1e8") (- "-") (number_literal "0x2f")) (< "<") (number_literal "0x12")) () ")")) (&& "&&") (parenthesized_expression "((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)" (( "(") (binary_expression "(1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0" (parenthesized_expression "(1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU)" (( "(") (binary_expression "1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU" (binary_expression "1 << ((byte)(local_1e8 - 0x2f) & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)(local_1e8 - 0x2f) & 0x1f)" (( "(") (binary_expression "(byte)(local_1e8 - 0x2f) & 0x1f" (call_expression "(byte)(local_1e8 - 0x2f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_1e8 - 0x2f)" (( "(") (binary_expression "local_1e8 - 0x2f" (identifier "local_1e8") (- "-") (number_literal "0x2f")) () ")"))) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "0x3000fU")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(local_1f4 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(local_1f4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(local_1f4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(local_1f4 + 0x2a) & 7" (pointer_expression "*(byte *)(local_1f4 + 0x2a)" (* "*") (cast_expression "(byte *)(local_1f4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1f4 + 0x2a)" (( "(") (binary_expression "local_1f4 + 0x2a" (identifier "local_1f4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))" (( "(") (parenthesized_expression "(piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52]))" (( "(") (comma_expression "piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])" (assignment_expression "piVar2 = *(int **)(local_1f4 + 8)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(local_1f4 + 8)" (* "*") (cast_expression "(int **)(local_1f4 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_1f4 + 8)" (( "(") (binary_expression "local_1f4 + 8" (identifier "local_1f4") (+ "+") (number_literal "8")) () ")"))))) (, ",") (binary_expression "(*(byte *)(piVar2 + 0xb) & 1) == 0 &&\n                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])" (binary_expression "(*(byte *)(piVar2 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar2 + 0xb) & 1)" (( "(") (binary_expression "*(byte *)(piVar2 + 0xb) & 1" (pointer_expression "*(byte *)(piVar2 + 0xb)" (* "*") (cast_expression "(byte *)(piVar2 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2 + 0xb)" (( "(") (binary_expression "piVar2 + 0xb" (identifier "piVar2") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])" (( "(") (comma_expression "iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52]" (assignment_expression "iVar8 = *(int *)(local_1f4 + 0xc)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(local_1f4 + 0xc)" (* "*") (cast_expression "(int *)(local_1f4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1f4 + 0xc)" (( "(") (binary_expression "local_1f4 + 0xc" (identifier "local_1f4") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (binary_expression "iVar8 == piVar2[0x52]" (identifier "iVar8") (== "==") (subscript_expression "piVar2[0x52]" (identifier "piVar2") ([ "[") (number_literal "0x52") (] "]")))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;\n              iVar9 = FUN_00053620();\n              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];\n              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);\n              pcVar1 = *(code **)(*piVar2 + 0x3c);\n              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }\n              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);\n              if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }\n            }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -8) = 0x8e5d1;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0x8e5d1" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x8e5d1")) (; ";")) (expression_statement "iVar9 = FUN_00053620();" (assignment_expression "iVar9 = FUN_00053620()" (identifier "iVar9") (= "=") (call_expression "FUN_00053620()" (identifier "FUN_00053620") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];" (assignment_expression "local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4]" (identifier "local_1f4") (= "=") (binary_expression "*(uint *)(iVar9 + 0x30) + local_1d8[0][4]" (pointer_expression "*(uint *)(iVar9 + 0x30)" (* "*") (cast_expression "(uint *)(iVar9 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (subscript_expression "local_1d8[0][4]" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);" (assignment_expression "local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" (identifier "local_1f0") (= "=") (binary_expression "*(int *)(iVar9 + 0x34) + local_1d8[0][5] +\n                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" (binary_expression "*(int *)(iVar9 + 0x34) + local_1d8[0][5]" (pointer_expression "*(int *)(iVar9 + 0x34)" (* "*") (cast_expression "(int *)(iVar9 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x34)" (( "(") (binary_expression "iVar9 + 0x34" (identifier "iVar9") (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (subscript_expression "local_1d8[0][5]" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "5") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" (identifier "CARRY4") (argument_list "(*(uint *)(iVar9 + 0x30),local_1d8[0][4])" (( "(") (pointer_expression "*(uint *)(iVar9 + 0x30)" (* "*") (cast_expression "(uint *)(iVar9 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (, ",") (subscript_expression "local_1d8[0][4]" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "4") (] "]")) () ")")))))) (; ";")) (expression_statement "pcVar1 = *(code **)(*piVar2 + 0x3c);" (assignment_expression "pcVar1 = *(code **)(*piVar2 + 0x3c)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(*piVar2 + 0x3c)" (* "*") (cast_expression "(code **)(*piVar2 + 0x3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar2 + 0x3c)" (( "(") (binary_expression "*piVar2 + 0x3c" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (if_statement "if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }\n              else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }" (if "if") (parenthesized_expression "(pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3))" (( "(") (binary_expression "pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" (identifier "pcVar1") (== "==") (cast_expression "(code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)" (( "(") (binary_expression "(int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3" (binary_expression "(int)&__DT_REL[0x26b4].r_info + unaff_EDI" (cast_expression "(int)&__DT_REL[0x26b4].r_info" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_REL[0x26b4].r_info" (& "&") (field_expression "__DT_REL[0x26b4].r_info" (subscript_expression "__DT_REL[0x26b4]" (identifier "__DT_REL") ([ "[") (number_literal "0x26b4") (] "]")) (. ".") (field_identifier "r_info")))) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "3")) () ")")))) () ")")) (compound_statement "{\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;\n                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;\n                uVar17 = FUN_000b2960();\n              }" ({ "{") (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(int **)(puVar15 + -0x14) = piVar2 + 0x24;" (assignment_expression "*(int **)(puVar15 + -0x14) = piVar2 + 0x24" (pointer_expression "*(int **)(puVar15 + -0x14)" (* "*") (cast_expression "(int **)(puVar15 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "piVar2 + 0x24" (identifier "piVar2") (+ "+") (number_literal "0x24"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8e612;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8e612" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8e612")) (; ";")) (expression_statement "uVar17 = FUN_000b2960();" (assignment_expression "uVar17 = FUN_000b2960()" (identifier "uVar17") (= "=") (call_expression "FUN_000b2960()" (identifier "FUN_000b2960") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }" (else "else") (compound_statement "{\n                *(int *)(puVar15 + -0x10) = iVar8;\n                *(int **)(puVar15 + -0x14) = piVar2;\n                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;\n                uVar17 = (*pcVar1)();\n              }" ({ "{") (expression_statement "*(int *)(puVar15 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(int **)(puVar15 + -0x14) = piVar2;" (assignment_expression "*(int **)(puVar15 + -0x14) = piVar2" (pointer_expression "*(int **)(puVar15 + -0x14)" (* "*") (cast_expression "(int **)(puVar15 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x9018b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x9018b" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x9018b")) (; ";")) (expression_statement "uVar17 = (*pcVar1)();" (assignment_expression "uVar17 = (*pcVar1)()" (identifier "uVar17") (= "=") (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar12 = (uint)((ulonglong)uVar17 >> 0x20);" (assignment_expression "uVar12 = (uint)((ulonglong)uVar17 >> 0x20)" (identifier "uVar12") (= "=") (call_expression "(uint)((ulonglong)uVar17 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar17 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar17 >> 0x20" (cast_expression "(ulonglong)uVar17" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if ((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }" (if "if") (parenthesized_expression "((local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17)))" (( "(") (binary_expression "(local_1e8 != 0x32) &&\n                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))" (parenthesized_expression "(local_1e8 != 0x32)" (( "(") (binary_expression "local_1e8 != 0x32" (identifier "local_1e8") (!= "!=") (number_literal "0x32")) () ")")) (&& "&&") (parenthesized_expression "(local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))" (( "(") (binary_expression "local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17)" (binary_expression "local_1f0 < uVar12" (identifier "local_1f0") (< "<") (identifier "uVar12")) (|| "||") (binary_expression "local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17)" (binary_expression "local_1f0 - uVar12" (identifier "local_1f0") (- "-") (identifier "uVar12")) (< "<") (call_expression "(uint)(local_1f4 < (uint)uVar17)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_1f4 < (uint)uVar17)" (( "(") (binary_expression "local_1f4 < (uint)uVar17" (identifier "local_1f4") (< "<") (cast_expression "(uint)uVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar17"))) () ")"))))) () ")"))) () ")")) (compound_statement "{\n                if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }\n                *(undefined4 *)(puVar15 + -8) = 0x8e698;\n                FUN_0008c440();\n              }" ({ "{") (if_statement "if (local_1e8 == 0x40) {\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }" (if "if") (parenthesized_expression "(local_1e8 == 0x40)" (( "(") (binary_expression "local_1e8 == 0x40" (identifier "local_1e8") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n                  uVar12 = local_1f4;\n                  if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }\n                  if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }\n                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;\n                }" ({ "{") (expression_statement "uVar12 = local_1f4;" (assignment_expression "uVar12 = local_1f4" (identifier "uVar12") (= "=") (identifier "local_1f4")) (; ";")) (if_statement "if (local_1f8 == 0) {\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }" (if "if") (parenthesized_expression "(local_1f8 == 0)" (( "(") (binary_expression "local_1f8 == 0" (identifier "local_1f8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    *(undefined4 *)(puVar15 + -8) = 0;\n                    *(uint **)(puVar15 + -0xc) = local_1d0;\n                    *(uint *)(puVar15 + -0x10) = param_5;\n                    *(int **)(puVar15 + -0x14) = param_4;\n                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;\n                    local_1f8 = FUN_00121d40();\n                    uVar12 = extraout_ECX_00;\n                  }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint **)(puVar15 + -0xc) = local_1d0;" (assignment_expression "*(uint **)(puVar15 + -0xc) = local_1d0" (pointer_expression "*(uint **)(puVar15 + -0xc)" (* "*") (cast_expression "(uint **)(puVar15 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_1d0")) (; ";")) (expression_statement "*(uint *)(puVar15 + -0x10) = param_5;" (assignment_expression "*(uint *)(puVar15 + -0x10) = param_5" (pointer_expression "*(uint *)(puVar15 + -0x10)" (* "*") (cast_expression "(uint *)(puVar15 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(int **)(puVar15 + -0x14) = param_4;" (assignment_expression "*(int **)(puVar15 + -0x14) = param_4" (pointer_expression "*(int **)(puVar15 + -0x14)" (* "*") (cast_expression "(int **)(puVar15 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x90330;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x90330" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x90330")) (; ";")) (expression_statement "local_1f8 = FUN_00121d40();" (assignment_expression "local_1f8 = FUN_00121d40()" (identifier "local_1f8") (= "=") (call_expression "FUN_00121d40()" (identifier "FUN_00121d40") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar12 = extraout_ECX_00;" (assignment_expression "uVar12 = extraout_ECX_00" (identifier "uVar12") (= "=") (identifier "extraout_ECX_00")) (; ";")) (} "}"))) (if_statement "if (local_1d8[0][1] != 0) {\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }" (if "if") (parenthesized_expression "(local_1d8[0][1] != 0)" (( "(") (binary_expression "local_1d8[0][1] != 0" (subscript_expression "local_1d8[0][1]" (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    *(uint *)(puVar15 + -8) = uVar12;\n                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;\n                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;\n                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;\n                    \n                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;\n                    FUN_000da200();\n                  }" ({ "{") (expression_statement "*(uint *)(puVar15 + -8) = uVar12;" (assignment_expression "*(uint *)(puVar15 + -8) = uVar12" (pointer_expression "*(uint *)(puVar15 + -8)" (* "*") (cast_expression "(uint *)(puVar15 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;" (assignment_expression "*(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab" (pointer_expression "*(int *)(puVar15 + -0xc)" (* "*") (cast_expression "(int *)(puVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x2685ab" (identifier "unaff_EDI") (+ "+") (number_literal "0x2685ab"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0xc0")) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "&UNK_002697a3 + unaff_EDI" (pointer_expression "&UNK_002697a3" (& "&") (identifier "UNK_002697a3")) (+ "+") (identifier "unaff_EDI"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x18) = &UNK_000904e5;" (assignment_expression "*(undefined **)(puVar15 + -0x18) = &UNK_000904e5" (pointer_expression "*(undefined **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&UNK_000904e5" (& "&") (identifier "UNK_000904e5"))) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;" (if "if") (parenthesized_expression "((*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8))" (( "(") (binary_expression "(*local_1d8[0] + 3U < local_1d0[0]) &&\n                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)" (parenthesized_expression "(*local_1d8[0] + 3U < local_1d0[0])" (( "(") (binary_expression "*local_1d8[0] + 3U < local_1d0[0]" (binary_expression "*local_1d8[0] + 3U" (pointer_expression "*local_1d8[0]" (* "*") (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]"))) (+ "+") (number_literal "3U")) (< "<") (subscript_expression "local_1d0[0]" (identifier "local_1d0") ([ "[") (number_literal "0") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)" (( "(") (binary_expression "(*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8" (parenthesized_expression "(*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc)" (( "(") (binary_expression "*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc" (pointer_expression "*(byte *)(local_1f8 + 3 + *local_1d8[0])" (* "*") (cast_expression "(byte *)(local_1f8 + 3 + *local_1d8[0])" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1f8 + 3 + *local_1d8[0])" (( "(") (binary_expression "local_1f8 + 3 + *local_1d8[0]" (binary_expression "local_1f8 + 3" (identifier "local_1f8") (+ "+") (number_literal "3")) (+ "+") (pointer_expression "*local_1d8[0]" (* "*") (subscript_expression "local_1d8[0]" (identifier "local_1d8") ([ "[") (number_literal "0") (] "]")))) () ")")))) (& "&") (number_literal "0xfc")) () ")")) (== "==") (number_literal "0xe8")) () ")"))) () ")")) (goto_statement "goto LAB_0008e248;" (goto "goto") (statement_identifier "LAB_0008e248") (; ";"))) (} "}"))) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0x8e698;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0x8e698" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x8e698")) (; ";")) (expression_statement "FUN_0008c440();" (call_expression "FUN_0008c440()" (identifier "FUN_0008c440") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_0008e248:\n          puVar15 = puVar15 + -4;" (statement_identifier "LAB_0008e248") (: ":") (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" (identifier "puVar15") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";"))) (if_statement "if (local_1e8 - 0xe < 0x4e) {\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }" (if "if") (parenthesized_expression "(local_1e8 - 0xe < 0x4e)" (( "(") (binary_expression "local_1e8 - 0xe < 0x4e" (binary_expression "local_1e8 - 0xe" (identifier "local_1e8") (- "-") (number_literal "0xe")) (< "<") (number_literal "0x4e")) () ")")) (compound_statement "{\n                    \n                    \n            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();\n            return;\n          }" ({ "{") (expression_statement "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();" (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))" (( "(") (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16)" (* "*") (cast_expression "(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16" (pointer_expression "*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4)" (( "(") (binary_expression "unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4" (binary_expression "unaff_EDI + 0x25fa7b" (identifier "unaff_EDI") (+ "+") (number_literal "0x25fa7b")) (+ "+") (binary_expression "(local_1e8 - 0xe) * 4" (parenthesized_expression "(local_1e8 - 0xe)" (( "(") (binary_expression "local_1e8 - 0xe" (identifier "local_1e8") (- "-") (number_literal "0xe")) () ")")) (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "iVar16")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_0008dda8:\n      local_1ec = local_1ec + 1;" (statement_identifier "LAB_0008dda8") (: ":") (expression_statement "local_1ec = local_1ec + 1;" (assignment_expression "local_1ec = local_1ec + 1" (identifier "local_1ec") (= "=") (binary_expression "local_1ec + 1" (identifier "local_1ec") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "param_7 = param_7 + 6;" (assignment_expression "param_7 = param_7 + 6" (identifier "param_7") (= "=") (binary_expression "param_7 + 6" (identifier "param_7") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_8 != local_1ec)" (( "(") (binary_expression "param_8 != local_1ec" (identifier "param_8") (!= "!=") (identifier "local_1ec")) () ")")) (; ";")) (if_statement "if ((local_16c != 0) && (local_168 != 0)) {\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }" (if "if") (parenthesized_expression "((local_16c != 0) && (local_168 != 0))" (( "(") (binary_expression "(local_16c != 0) && (local_168 != 0)" (parenthesized_expression "(local_16c != 0)" (( "(") (binary_expression "local_16c != 0" (identifier "local_16c") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_168 != 0)" (( "(") (binary_expression "local_168 != 0" (identifier "local_168") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;\n      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;\n      uVar7 = gettext();\n      *(undefined4 *)(puVar15 + -0x10) = uVar7;\n      *(undefined4 *)(puVar15 + -0x14) = local_15c;\n      *(undefined4 *)(puVar15 + -0x18) = local_160;\n      *(undefined4 *)(puVar15 + -0x1c) = local_164;\n      *(int *)(puVar15 + -0x20) = local_168;\n      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;\n      FUN_000d1a30();\n    }" ({ "{") (expression_statement "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;" (assignment_expression "*(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "unaff_EDI + 0x2699db" (identifier "unaff_EDI") (+ "+") (number_literal "0x2699db"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8dde7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8dde7" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8dde7")) (; ";")) (expression_statement "uVar7 = gettext();" (assignment_expression "uVar7 = gettext()" (identifier "uVar7") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = local_15c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = local_15c" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_15c")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = local_160;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = local_160" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_160")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = local_164;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = local_164" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_164")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x20) = local_168;" (assignment_expression "*(int *)(puVar15 + -0x20) = local_168" (pointer_expression "*(int *)(puVar15 + -0x20)" (* "*") (cast_expression "(int *)(puVar15 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_168")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8de07;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8de07" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8de07")) (; ";")) (expression_statement "FUN_000d1a30();" (call_expression "FUN_000d1a30()" (identifier "FUN_000d1a30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Removing unreachable block (ram,0x0008df80) */
/* WARNING: Removing unreachable block (ram,0x0008ddd6) */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void scan_relocs(Target_powerpc<64,_false> * this, Symbol_table *
   symtab, Layout * layout, Sized_relobj_file<64,_false> * 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_2af53c::Target_powerpc<64,_false>::scan_relocs
          (Target_powerpc<64,_false> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<64,_false> *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)

{
  pointer ppOVar1;
  pointer ppSVar2;
  Layout *this_00;
  size_type sVar3;
  __bucket_type *pp_Var4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  pointer pBVar9;
  pointer pcVar10;
  uint *puVar11;
  pointer pBVar12;
  uint uVar13;
  iterator __position;
  Elf_Swxword EVar14;
  Tls_get_addr TVar15;
  bool bVar16;
  byte bVar17;
  uint uVar18;
  Layout *pLVar19;
  int iVar20;
  undefined1 *puVar21;
  char *pcVar22;
  Xindex *this_01;
  Sized_symbol<64> *pSVar23;
  Symbols_data *pSVar24;
  uint uVar25;
  Symbol *pSVar26;
  uchar *puVar27;
  undefined4 *puVar28;
  pointer pBVar29;
  int iVar30;
  char cVar31;
  Layout *pLVar32;
  pointer pBVar33;
  pointer pBVar34;
  uint uVar35;
  uchar **ppuVar36;
  anon_enum_32 insn_check;
  int unaff_EDI;
  int iVar37;
  Elf_WXword EVar38;
  Layout *in_stack_fffffd98;
  Layout *data_shndx_00;
  Layout *in_stack_fffffd9c;
  Symbol *in_stack_fffffda0;
  Powerpc_relobj<64,_false> *in_stack_fffffda4;
  Symbol *in_stack_fffffda8;
  uint *in_stack_fffffdac;
  uint *puVar39;
  pointer local_248;
  pointer local_240;
  pointer local_238;
  size_t local_1ec;
  Reltype reloc;
  __node_gen_type __node_gen;
  section_size_type slen;
  Symbol_location loc;
  Scan scan;
  Symbol *local_154;
  Symbol local_14c [5];
  Sym<64,_false> lsym;
  
  __x86_get_pc_thunk_di();
  iVar37 = unaff_EDI + 0x3863e7;
  if (this->plt_localentry0_init_ == false) {
    cVar31 = false;
    if ((this->field_0x8 & 2) != 0) {
      iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
      if (iVar20 == 0) {
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable
                  ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +
                           unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));
      }
      cVar31 = *(char *)(iVar20 + 0x2b60);
      if ((cVar31 != '\0') && (cVar31 = *(char *)(iVar20 + 0x2b61), cVar31 != '\0')) {
        in_stack_fffffd98 = (Layout *)(unaff_EDI + 0x2694d6);
        in_stack_fffffd9c = (Layout *)0x0;
        pSVar26 = gold::Symbol_table::lookup(symtab,(char *)in_stack_fffffd98,(char *)0x0);
        if (pSVar26 == (Symbol *)0x0) {
          pcVar22 = (char *)gettext(unaff_EDI + 0x269c6f);
          gold::gold_warning(pcVar22);
        }
      }
    }
    this->plt_localentry0_ = (bool)cVar31;
    this->plt_localentry0_init_ = true;
  }
  if (sh_type == 9) {
    pcVar10 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.
              _M_p;
    pcVar22 = (char *)gettext(unaff_EDI + 0x269cc7);
    gold::gold_error(pcVar22,pcVar10);
    return;
  }
  scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;
  if (reloc_count != 0) {
    local_1ec = 0;
    do {
      TVar15 = scan.super_Track_tls.tls_get_addr_state_;
      reloc.p_ = (Rela_data<64> *)prelocs;
      if ((needs_special_offset_handling) &&
         (bVar16 = gold::Output_section::is_input_address_mapped
                             (output_section,(Relobj *)object,data_shndx,*(off_t *)prelocs), !bVar16
         )) goto _L18143;
      data_shndx_00 = *(Layout **)&(reloc.p_)->r_info;
      uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);
      if (uVar35 < param_10) {
        if (plocal_symbols == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable
                    ((char *)(unaff_EDI + 0x2693fc),0x4d,(char *)(unaff_EDI + 0x268377));
        }
        lsym.p_ = (Sym_data<64> *)(plocal_symbols + uVar35 * 0x18);
        uVar18 = (uint)(lsym.p_)->st_shndx;
        if (uVar18 < 0xff00) {
LAB_0008de38:
          if (uVar18 == 0) goto LAB_0008dd74;
          ppOVar1 = (object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                    ._M_impl._M_start;
          if ((uint)((int)(object->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                          ._M_impl._M_finish - (int)ppOVar1 >> 2) <= uVar18) {
                    /* WARNING: Subroutine does not return */
            gold::do_gold_unreachable
                      ((char *)(unaff_EDI + 0x26922f),0x50b,(char *)(unaff_EDI + 0x26868b));
          }
          if (ppOVar1[uVar18] != (Output_section *)0x0) goto LAB_0008dd74;
          bVar16 = gold::Symbol_table::is_section_folded(symtab,(Relobj *)object,uVar18);
          in_stack_fffffda0 = (Symbol *)(uint)!bVar16;
        }
        else {
          if (uVar18 == 0xffff) {
            this_01 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;
            if (this_01 == (Xindex *)0x0) {
              this_01 = (Xindex *)
                        (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.
                          _vptr_Object[0x1b])(object);
              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;
            }
                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */
            uVar18 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)object,uVar35);
            goto LAB_0008de38;
          }
LAB_0008dd74:
          in_stack_fffffda0 = (Symbol *)0x0;
        }
        in_stack_fffffd9c = (Layout *)&lsym;
                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */
        Scan::local((Scan *)this,(Symbol_table *)object,(Layout *)data_shndx,
                    (Target_powerpc<64,_false> *)output_section,
                    (Sized_relobj_file<64,_false> *)&reloc,(uint)data_shndx_00,
                    (Output_section *)in_stack_fffffd9c,(Rela<64,_false> *)in_stack_fffffda0,
                    (uint)in_stack_fffffda4,(Sym<64,_false> *)in_stack_fffffda8,
                    SUB41(in_stack_fffffdac,0));
        in_stack_fffffd98 = data_shndx_00;
      }
      else {
        if (uVar35 < object->local_symbol_count_) {
LAB_00090230:
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable
                    ((char *)(unaff_EDI + 0x2693fc),0x6a,(char *)(unaff_EDI + 0x268377));
        }
        uVar35 = uVar35 - object->local_symbol_count_;
        ppSVar2 = (object->symbols_).
                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start
        ;
        if ((uint)((int)(object->symbols_).
                        super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                        _M_finish - (int)ppSVar2 >> 2) <= uVar35) {
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable
                    ((char *)(unaff_EDI + 0x26922f),0x8ad,(char *)(unaff_EDI + 0x26870b));
        }
        pLVar19 = (Layout *)ppSVar2[uVar35];
        if (pLVar19 == (Layout *)0x0) goto LAB_00090230;
        if (((uint)(pLVar19->namepool_).key_to_offset_.chunks_.
                   super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                   ._M_impl._M_finish & 0x100000) == 0) {
          if (((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.
                              _M_header._M_left + 2U) & 0xfffffff7) != 0) &&
              ((undefined1 *)0x2 < (undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U)
              )) && ((data_shndx_00 != (Layout *)0x3c &&
                     ((undefined1 *)0x1 <
                      (undefined1 *)
                      ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.
                             super__Rb_tree_header._M_header._M_parent + 1U))))) goto LAB_0008df60;
LAB_0008e048:
          if ((Layout *)this->tls_get_addr_ != pLVar19) {
            if ((Layout *)this->tls_get_addr_opt_ != pLVar19) goto LAB_0008df60;
            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;
            if ((TVar15 != EXPECTED) && (TVar15 == SKIP)) goto _L18143;
            goto LAB_0008e080;
          }
          scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;
          pLVar32 = pLVar19;
          if ((TVar15 == EXPECTED) || (pLVar32 = (Layout *)this->tls_get_addr_, TVar15 != SKIP))
          goto LAB_0008dfbd;
        }
        else {
          in_stack_fffffd98 = pLVar19;
          pLVar19 = (Layout *)gold::Symbol_table::resolve_forwards(symtab,(Symbol *)pLVar19);
          if (((((((uint)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header
                                ._M_header._M_left + 2U) & 0xfffffff7) == 0) ||
                ((undefined1 *)((int)&data_shndx_00[-1].free_list_.min_hole_ + 3U) <
                 (undefined1 *)0x3)) || (data_shndx_00 == (Layout *)0x3c)) ||
              ((undefined1 *)
               ((int)&data_shndx_00[-1].section_segment_map_._M_t._M_impl.super__Rb_tree_header.
                      _M_header._M_parent + 1U) < (undefined1 *)0x2)) && (pLVar19 != (Layout *)0x0))
          goto LAB_0008e048;
LAB_0008df60:
          pLVar32 = (Layout *)this->tls_get_addr_;
LAB_0008dfbd:
          this_00 = (Layout *)this->tls_get_addr_opt_;
          if ((this_00 == (Layout *)0x0) || (pLVar32 != pLVar19)) {
LAB_0008e080:
            this_00 = pLVar19;
          }
          if (data_shndx_00 == (Layout *)0x6b) {
            gold::Symbol::final_value_is_known((Symbol *)this_00);
            iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
            if (iVar20 == 0) {
                    /* WARNING: Subroutine does not return */
              Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);
            }
LAB_0008e0c3:
            scan.super_Track_tls.tls_get_addr_state_ = EXPECTED;
            if ((*(char *)(iVar20 + 0x1a25) == '\0') && (*(char *)(iVar20 + 0x3ef5) != '\0')) {
              scan.super_Track_tls.tls_get_addr_state_ = SKIP;
            }
          }
          else {
            scan.super_Track_tls.tls_get_addr_state_ = NOT_EXPECTED;
            if (data_shndx_00 == (Layout *)0x6c) {
              iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
              if (iVar20 == 0) {
                    /* WARNING: Subroutine does not return */
                Stub_table<64,_false>::stub_align((Stub_table<64,_false> *)in_stack_fffffda4);
              }
              goto LAB_0008e0c3;
            }
          }
          bVar17 = *(byte *)&(this_00->namepool_).key_to_offset_.chunks_.
                             super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                             ._M_impl._M_finish & 0xf;
          if (bVar17 == 10) {
            bVar16 = Scan::reloc_needs_plt_for_ifunc
                               ((Target_powerpc<64,_false> *)0x1,
                                (Sized_relobj_file<64,_false> *)in_stack_fffffd98,
                                (uint)in_stack_fffffd9c,SUB41(in_stack_fffffda0,0));
            if (bVar16) {
              uVar35 = *(uint *)((int)&(reloc.p_)->r_info + 4);
              uVar5 = *(undefined4 *)((int)&(reloc.p_)->r_addend + 4);
              uVar18 = (uint)data_shndx_00 & 0x7fffffff;
              uVar6 = *(undefined4 *)((int)&(reloc.p_)->r_offset + 4);
              uVar7 = (undefined4)(reloc.p_)->r_addend;
              uVar8 = (undefined4)(reloc.p_)->r_offset;
              pBVar9 = (this->branch_info_).
                       super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                       ._M_impl._M_finish;
              if (pBVar9 == (this->branch_info_).
                            super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                            ._M_impl._M_end_of_storage) {
                pBVar12 = (this->branch_info_).
                          super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                          ._M_impl._M_start;
                uVar25 = (int)pBVar9 - (int)pBVar12 >> 5;
                if (uVar25 == 0) {
                  local_240 = (pointer)0x20;
LAB_0008f9a2:
                  local_238 = (pointer)operator_new((uint)local_240);
                  local_248 = (pointer)((int)&local_238->object_ + (int)local_240);
                  local_240 = local_238 + 1;
                }
                else {
                  uVar13 = uVar25 * 2;
                  if (uVar13 < uVar25) {
                    local_240 = (pointer)0xffffffe0;
                    goto LAB_0008f9a2;
                  }
                  local_240 = (pointer)0xffffffe0;
                  if (0x7ffffff < uVar13) goto LAB_0008f9a2;
                  if (uVar13 != 0) {
                    local_240 = (pointer)(uVar25 << 6);
                    goto LAB_0008f9a2;
                  }
                  local_240 = (pointer)0x20;
                  local_248 = (pointer)0x0;
                  local_238 = (pointer)0x0;
                }
                puVar28 = (undefined4 *)(((int)pBVar9 - (int)pBVar12) + (int)local_238);
                *puVar28 = object;
                puVar28[3] = uVar6;
                puVar28[4] = puVar28[4] & 0x80000000 | uVar18;
                puVar28[1] = data_shndx;
                *(char *)((int)puVar28 + 0x13) = (char)(uVar18 >> 0x18);
                puVar28[2] = uVar8;
                puVar28[7] = uVar5;
                puVar28[5] = uVar35;
                puVar28[6] = uVar7;
                pBVar29 = local_238;
                pBVar33 = pBVar12;
                if (pBVar9 != pBVar12) {
                  do {
                    pBVar34 = pBVar33 + 1;
                    pBVar29->object_ = pBVar33->object_;
                    pBVar29->shndx_ = pBVar33->shndx_;
                    *(int *)&pBVar29->offset_ = (int)pBVar33->offset_;
                    *(undefined4 *)((int)&pBVar29->offset_ + 4) =
                         *(undefined4 *)((int)&pBVar33->offset_ + 4);
                    *(undefined4 *)&pBVar29->field_0x10 = *(undefined4 *)&pBVar33->field_0x10;
                    pBVar29->r_sym_ = pBVar33->r_sym_;
                    *(int *)&pBVar29->addend_ = (int)pBVar33->addend_;
                    *(undefined4 *)((int)&pBVar29->addend_ + 4) =
                         *(undefined4 *)((int)&pBVar33->addend_ + 4);
                    pBVar29 = pBVar29 + 1;
                    pBVar33 = pBVar34;
                  } while (pBVar9 != pBVar34);
                  local_240 = (pointer)((int)&local_238[2].object_ +
                                       ((int)pBVar9 + (-0x20 - (int)pBVar12) & 0xffffffe0U));
                }
                if (pBVar12 != (pointer)0x0) {
                  operator_delete(pBVar12);
                }
                (this->branch_info_).
                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                ._M_impl._M_start = local_238;
                (this->branch_info_).
                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                ._M_impl._M_finish = local_240;
                (this->branch_info_).
                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                ._M_impl._M_end_of_storage = local_248;
              }
              else {
                *(undefined4 *)&pBVar9->offset_ = uVar8;
                uVar25 = *(uint *)&pBVar9->field_0x10;
                *(undefined4 *)((int)&pBVar9->offset_ + 4) = uVar6;
                pBVar9->object_ = (Powerpc_relobj<64,_false> *)object;
                *(uint *)&pBVar9->field_0x10 = uVar25 & 0x80000000 | uVar18;
                pBVar9->shndx_ = data_shndx;
                pBVar9->field_0x13 = (byte)((uint)data_shndx_00 >> 0x18) & 0x7f;
                pBVar9->r_sym_ = uVar35;
                *(undefined4 *)&pBVar9->addend_ = uVar7;
                *(undefined4 *)((int)&pBVar9->addend_ + 4) = uVar5;
                (this->branch_info_).
                super__Vector_base<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info,_std::allocator<(anonymous_namespace)::Target_powerpc<64,_false>::Branch_info>_>
                ._M_impl._M_finish = pBVar9 + 1;
              }
              if ((undefined1 *)
                  ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.
                         _M_header._M_left + 1U) < (undefined1 *)0x3) {
                puVar39 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;
                __position.super__Bit_iterator_base._M_p =
                     object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_;
                __position.super__Bit_iterator_base._M_offset =
                     object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_;
                puVar11 = object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_counts_;
                pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;
                iVar20 = object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ +
                         ((int)puVar39 - (int)pSVar24) * 8;
                uVar35 = iVar20 - (int)puVar11;
                if (uVar35 <= data_shndx) {
                  iVar30 = (int)puVar11 + data_shndx + 1;
                  if (data_shndx + 1 < uVar35) {
                    iVar20 = iVar30 + 0x1f;
                    if (-1 < iVar30) {
                      iVar20 = iVar30;
                    }
                    ppuVar36 = &pSVar24->section_headers_data + (iVar20 >> 5);
                    uVar35 = iVar30 % 0x20;
                    if ((int)uVar35 < 0) {
                      uVar35 = uVar35 + 0x20;
                      ppuVar36 = ppuVar36 + -1;
                    }
                    object[1].super_Sized_relobj<64,_false>.super_Relobj.reloc_bases_ =
                         (uint *)ppuVar36;
                    object[1].super_Sized_relobj<64,_false>.super_Relobj.first_dyn_reloc_ = uVar35;
                  }
                  else {
                    std::vector<bool,_std::allocator<bool>_>::_M_fill_insert
                              ((vector<bool,_std::allocator<bool>_> *)
                               &object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_,__position,
                               iVar30 - iVar20,false);
                    pSVar24 = object[1].super_Sized_relobj<64,_false>.super_Relobj.sd_;
                    in_stack_fffffdac = puVar39;
                  }
                }
                (&pSVar24->section_headers_data)[data_shndx >> 5] =
                     (uchar *)((uint)(&pSVar24->section_headers_data)[data_shndx >> 5] |
                              1 << ((byte)data_shndx & 0x1f));
              }
              make_plt_entry((Target_powerpc<64,_false> *)this_00,(Symbol_table *)in_stack_fffffd98,
                             in_stack_fffffd9c,in_stack_fffffda0);
              if (data_shndx_00 < (Layout *)0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + (int)data_shndx_00 * 4) + iVar37))();
                return;
              }
            }
            else if (data_shndx_00 < (Layout *)0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + (int)data_shndx_00 * 4) + iVar37))();
              return;
            }
          }
          else if (data_shndx_00 < (Layout *)0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(*(int *)(&UNK_0025f53f + (int)data_shndx_00 * 4 + unaff_EDI) + iVar37))();
            return;
          }
          gold::Symbol::demangled_name((Symbol *)this_00);
          in_stack_fffffd98 =
               (Layout *)
               (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus.
               _M_p;
          pcVar22 = (char *)gettext(unaff_EDI + 0x269ceb);
          in_stack_fffffd9c = data_shndx_00;
          in_stack_fffffda0 = local_154;
                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */
          gold::gold_error(pcVar22);
          if (local_154 != local_14c) {
            operator_delete(local_154);
          }
          iVar20 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
          if (iVar20 == 0) {
                    /* WARNING: Subroutine does not return */
            gold::do_gold_unreachable
                      ((char *)(std::__copy_streambufs<wchar_t,std::char_traits<wchar_t>> +
                               unaff_EDI + 4),0x5c,(char *)(unaff_EDI + 0x26878f));
          }
          if (*(char *)(iVar20 + 0x3fed) == '\0') goto LAB_0008e248;
          if (data_shndx ==
              object[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2.
              _M_allocated_capacity) {
            if (data_shndx_00 != (Layout *)0x26) {
LAB_0008e450:
                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */
              in_stack_fffffda0 = (Symbol *)0x8e463;
              Powerpc_relobj<64,_false>::set_no_toc_opt
                        (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));
              goto joined_r0x0008e46f;
            }
            if (bVar17 == 10) {
              if (((this->field_0x8 & 2) != 0) && (*(char *)(iVar20 + 0x1a25) == '\0')) {
                bVar17 = *(byte *)(iVar20 + 0x2931);
joined_r0x0008e445:
                if (bVar17 == 0) goto LAB_0008e248;
              }
              goto LAB_0008e450;
            }
            if ((*(char *)(iVar20 + 0x1a25) != '\0') || (*(char *)(iVar20 + 0x2931) != '\0')) {
              bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.
                                       super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                                       ._M_impl._M_finish + 2);
              if ((bVar17 & 7) == 0) {
                sVar3 = ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                          *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->
                        _M_allocated_capacity;
                bVar17 = *(byte *)((int)&(this_00->namepool_).key_to_offset_.chunks_.
                                         super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                                         ._M_impl._M_finish + 3) >> 5 & 1;
                if ((sVar3 == 0xfff1) && (bVar17 == 0)) goto LAB_0008e450;
                if (sVar3 == 0) goto joined_r0x0008e445;
              }
              else if ((byte)((bVar17 & 7) - 3) < 2) goto LAB_0008e450;
            }
          }
          else {
joined_r0x0008e46f:
            if ((undefined1 *)
                ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.
                       _M_header._M_parent + 1U) < (undefined1 *)0x50) {
                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(*(int *)(unaff_EDI + 0x25f93b +
                                 (int)((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.
                                             super__Rb_tree_header._M_header._M_parent + 1) * 4) +
                        iVar37))();
              return;
            }
            puVar21 = (undefined1 *)((int)&data_shndx_00[-1].free_list_.last_remove_._M_node + 1);
            if ((((puVar21 < (undefined1 *)0x12) && ((1 << ((byte)puVar21 & 0x1f) & 0x3000fU) != 0))
                && (((uint)(this_00->namepool_).key_to_offset_.chunks_.
                           super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                           ._M_impl._M_finish & 0x70000) == 0)) &&
               ((pp_Var4 = (this_00->namepool_).string_set_._M_h._M_buckets,
                ((uint)pp_Var4[0xb] & 1) == 0 &&
                (pLVar19 = (Layout *)
                           ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                             *)&(this_00->namepool_).string_set_._M_h._M_bucket_count)->
                           _M_allocated_capacity, pLVar19 == (Layout *)pp_Var4[0x52])))) {
              in_stack_fffffda0 = (Symbol *)0x8e5d1;
              pSVar23 = gold::Symbol_table::get_sized_symbol<64>
                                  ((Symbol_table *)in_stack_fffffda4,in_stack_fffffda8);
              uVar35 = (uint)pSVar23->value_;
              EVar14 = (reloc.p_)->r_addend;
              uVar18 = *(int *)((int)&pSVar23->value_ + 4) +
                       *(int *)((int)&(reloc.p_)->r_addend + 4) +
                       (uint)CARRY4(uVar35,(uint)(reloc.p_)->r_addend);
              if ((*pp_Var4)[0xf]._M_nxt ==
                  (_Hash_node_base *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {
                EVar38 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size
                                   ((Elf_file<64,_false,_gold::Object> *)(pp_Var4 + 0x24),
                                    (uint)pLVar19);
                in_stack_fffffd98 = pLVar19;
              }
              else {
                EVar38 = (*(code *)(*pp_Var4)[0xf]._M_nxt)(pp_Var4);
                in_stack_fffffd98 = pLVar19;
              }
              uVar25 = (uint)(EVar38 >> 0x20);
              if ((data_shndx_00 != (Layout *)0x32) &&
                 (uVar18 < uVar25 || uVar18 - uVar25 < (uint)(uVar35 + (int)EVar14 < (uint)EVar38)))
              {
                if (data_shndx_00 == (Layout *)0x40) {
                  in_stack_fffffd9c = (Layout *)&slen;
                  in_stack_fffffda0 = (Symbol *)0x0;
                  in_stack_fffffd98 = (Layout *)data_shndx;
                  puVar27 = gold::Object::section_contents
                                      ((Object *)object,data_shndx,
                                       (section_size_type *)in_stack_fffffd9c,false);
                  iVar20 = (int)(reloc.p_)->r_offset;
                  if (*(int *)((int)&(reloc.p_)->r_offset + 4) != 0) {
                    /* WARNING: Subroutine does not return */
                    gold::do_gold_unreachable
                              ((char *)(unaff_EDI + 0x2697a3),0xc0,(char *)(unaff_EDI + 0x2685ab));
                  }
                  if ((iVar20 + 3U < slen) && ((puVar27[iVar20 + 3] & 0xfc) == 0xe8))
                  goto LAB_0008e248;
                }
                in_stack_fffffda0 = (Symbol *)0x8e698;
                Powerpc_relobj<64,_false>::set_no_toc_opt
                          (in_stack_fffffda4,CONCAT44(in_stack_fffffdac,in_stack_fffffda8));
              }
            }
          }
LAB_0008e248:
          puVar21 = (undefined1 *)
                    ((int)&data_shndx_00[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.
                           _M_header._M_parent + 2);
          if (puVar21 < (undefined1 *)0x4e) {
                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (int)puVar21 * 4) + iVar37))();
            return;
          }
        }
      }
_L18143:
      local_1ec = local_1ec + 1;
      prelocs = prelocs + 0x18;
    } while (reloc_count != local_1ec);
  }
  return;
}


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

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

{
  code *pcVar1;
  int *piVar2;
  undefined4 *puVar3;
  char cVar4;
  byte bVar5;
  uint uVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  undefined4 extraout_ECX;
  undefined4 *puVar10;
  int iVar11;
  uint extraout_ECX_00;
  uint uVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined1 *puVar15;
  int unaff_EDI;
  int iVar16;
  undefined8 uVar17;
  int aiStackY_280 [5];
  undefined1 auStack_25c [8];
  int local_254;
  int local_250;
  int local_248;
  int local_244;
  undefined4 *local_240;
  undefined4 *local_23c;
  undefined4 *local_238;
  int local_234;
  int local_230;
  int local_22c;
  int local_224;
  int local_220;
  uint local_21c;
  int local_218;
  uint local_214;
  int local_210;
  char local_20c;
  int local_204;
  undefined1 *local_200;
  char local_1f9;
  uint local_1f8;
  uint local_1f4;
  uint local_1f0;
  int local_1ec;
  uint local_1e8;
  int *local_1d8 [2];
  uint local_1d0 [25];
  int local_16c;
  int local_168;
  undefined4 local_164;
  undefined4 local_160;
  undefined4 local_15c;
  undefined1 local_158;
  undefined1 *local_154 [2];
  undefined1 local_14c [268];
  int local_40 [12];
  
  FUN_000b484e();
  iVar16 = unaff_EDI + 0x3863e7;
  local_1f9 = param_10;
  if (*(char *)(param_1 + 0x9e) == '\0') {
    cVar4 = '\0';
    if ((*(byte *)(param_1 + 8) & 2) != 0) {
      iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
      if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200(unaff_EDI + 0x254654,0x5c,unaff_EDI + 0x26878f,extraout_ECX);
      }
      cVar4 = *(char *)(iVar8 + 0x2b60);
      if (*(char *)(iVar8 + 0x2b60) != '\0') {
        if (*(char *)(iVar8 + 0x2b61) == '\0') {
          cVar4 = '\0';
        }
        else {
          local_1e8 = CONCAT31(local_1e8._1_3_,*(char *)(iVar8 + 0x2b61));
          iVar8 = FUN_001e9100(param_2,&UNK_002694d6 + unaff_EDI,0);
          cVar4 = (char)local_1e8;
          if (iVar8 == 0) {
            uVar7 = gettext(unaff_EDI + 0x269c6f);
            FUN_000d1360(uVar7);
            cVar4 = (char)local_1e8;
          }
        }
      }
    }
    *(char *)(param_1 + 0x9d) = cVar4;
    *(undefined1 *)(param_1 + 0x9e) = 1;
  }
  puVar15 = auStack_25c;
  if (param_6 == 9) {
    iVar16 = param_4[1];
    uVar7 = gettext(unaff_EDI + 0x269cc7);
    FUN_000d1330(uVar7,iVar16);
    return;
  }
  local_16c = 0;
  local_168 = 0;
  local_164 = 0;
  local_160 = 0;
  local_15c = 0;
  local_158 = 0;
  if (param_8 != 0) {
    local_1ec = 0;
    local_210 = (param_5 >> 5) << 2;
    local_214 = 1 << ((byte)param_5 & 0x1f);
    local_218 = unaff_EDI + 0x3868cf;
    local_204 = local_218;
    do {
      local_1d8[0] = param_7;
      if (local_1f9 != '\0') {
        *(int *)(puVar15 + -0x10) = param_7[1];
        *(int *)(puVar15 + -0x14) = *param_7;
        *(uint *)(puVar15 + -0x18) = param_5;
        *(int **)(puVar15 + -0x1c) = param_4;
        *(undefined4 *)(puVar15 + -0x20) = param_9;
        *(undefined4 *)(puVar15 + -0x24) = 0x8dea8;
        cVar4 = FUN_00163e50();
        if (cVar4 != '\0') goto LAB_0008dd2e;
        goto LAB_0008dda8;
      }
LAB_0008dd2e:
      local_1e8 = local_1d8[0][2];
      uVar12 = local_1d8[0][3];
      if (uVar12 < param_11) {
        if (param_12 == 0) {
          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;
          *(undefined4 *)(puVar15 + -0xc) = 0x4d;
          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;
                    /* WARNING: Subroutine does not return */
          *(undefined **)(puVar15 + -0x14) = &UNK_000901d5;
          FUN_000da200();
        }
        local_40[0] = param_12 + uVar12 * 0x18;
        uVar6 = (uint)*(ushort *)(local_40[0] + 6);
        if (uVar6 < 0xff00) {
LAB_0008de38:
          if (uVar6 == 0) goto LAB_0008dd74;
          local_1f4 = param_4[0xf];
          if ((uint)((int)(local_1f4 - param_4[0xe]) >> 2) <= uVar6) {
            *(int *)(puVar15 + -8) = unaff_EDI + 0x26868b;
            *(undefined4 *)(puVar15 + -0xc) = 0x50b;
            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;
                    /* WARNING: Subroutine does not return */
            *(undefined **)(puVar15 + -0x14) = &UNK_000902f6;
            FUN_000da200();
          }
          if (*(int *)(param_4[0xe] + uVar6 * 4) != 0) goto LAB_0008dd74;
          *(uint *)(puVar15 + -8) = uVar6;
          *(int **)(puVar15 + -0xc) = param_4;
          *(undefined4 *)(puVar15 + -0x10) = param_2;
          *(undefined4 *)(puVar15 + -0x14) = 0x8de7a;
          uVar12 = FUN_001e6ec0();
          uVar12 = (uVar12 ^ 1) & 0xff;
        }
        else {
          if (uVar6 == 0xffff) {
            iVar8 = param_4[0xc];
            if (iVar8 == 0) {
              iVar8 = *param_4;
              *(int **)(puVar15 + -0x10) = param_4;
              pcVar1 = *(code **)(iVar8 + 0x6c);
              *(undefined4 *)(puVar15 + -0x14) = 0x8e4c6;
              iVar8 = (*pcVar1)();
              param_4[0xc] = iVar8;
            }
            *(uint *)(puVar15 + -8) = uVar12;
            *(int **)(puVar15 + -0xc) = param_4;
            *(int *)(puVar15 + -0x10) = iVar8;
                    /* try { // try from 0008de30 to 0008e376 has its CatchHandler @ 0009050e */
            *(undefined4 *)(puVar15 + -0x14) = 0x8de35;
            uVar6 = FUN_00121c60();
            goto LAB_0008de38;
          }
LAB_0008dd74:
          uVar12 = 0;
        }
        *(uint *)(puVar15 + -4) = uVar12;
        *(int **)(puVar15 + -8) = local_40;
        *(uint *)(puVar15 + -0xc) = local_1e8;
        *(int ***)(puVar15 + -0x10) = local_1d8;
        *(undefined4 *)(puVar15 + -0x14) = param_9;
        *(uint *)(puVar15 + -0x18) = param_5;
        *(int **)(puVar15 + -0x1c) = param_4;
        *(int *)(puVar15 + -0x20) = param_1;
                    /* try { // try from 0008dda0 to 0008dda4 has its CatchHandler @ 0009050e */
        *(undefined4 *)(puVar15 + -0x24) = 0x8dda5;
        FUN_0008c5a0();
      }
      else {
        if (uVar12 < (uint)param_4[0x2c]) {
LAB_00090230:
          *(int *)(puVar15 + -8) = unaff_EDI + 0x268377;
          *(undefined4 *)(puVar15 + -0xc) = 0x6a;
          *(undefined **)(puVar15 + -0x10) = &UNK_002693fc + unaff_EDI;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar15 + -0x14) = 0x9024a;
          FUN_000da200();
        }
        uVar12 = uVar12 - param_4[0x2c];
        local_1f4 = param_4[0x30];
        if ((uint)((int)(local_1f4 - param_4[0x2f]) >> 2) <= uVar12) {
          *(int *)(puVar15 + -8) = unaff_EDI + 0x26870b;
          *(undefined4 *)(puVar15 + -0xc) = 0x8ad;
          *(int *)(puVar15 + -0x10) = unaff_EDI + 0x26922f;
                    /* WARNING: Subroutine does not return */
          *(undefined **)(puVar15 + -0x14) = &UNK_00090281;
          FUN_000da200();
        }
        uVar12 = *(uint *)(param_4[0x2f] + uVar12 * 4);
        if (uVar12 == 0) goto LAB_00090230;
        if ((*(byte *)(uVar12 + 0x2a) & 0x10) == 0) {
          iVar8 = local_16c;
          if ((((local_1e8 - 10 & 0xfffffff7) != 0) && (2 < local_1e8 - 0x1d)) &&
             ((local_1e8 != 0x3c && (1 < local_1e8 - 0x77)))) goto LAB_0008df60;
LAB_0008e048:
          if (*(uint *)(param_1 + 0xb0) != uVar12) {
            if (*(uint *)(param_1 + 0xb4) != uVar12) goto LAB_0008df60;
            local_16c = 0;
            if ((iVar8 != 1) && (iVar8 == 2)) goto LAB_0008dda8;
            goto LAB_0008e080;
          }
          local_16c = 0;
          uVar6 = uVar12;
          if ((iVar8 == 1) || (uVar6 = *(uint *)(param_1 + 0xb0), iVar8 != 2)) goto LAB_0008dfbd;
        }
        else {
          *(uint *)(puVar15 + -0xc) = uVar12;
          *(undefined4 *)(puVar15 + -0x10) = param_2;
          *(undefined4 *)(puVar15 + -0x14) = 0x8df18;
          uVar12 = FUN_001e6f30();
          iVar8 = local_16c;
          if ((((((local_1e8 - 10 & 0xfffffff7) == 0) || (local_1e8 - 0x1d < 3)) ||
               (local_1e8 == 0x3c)) || (local_1e8 - 0x77 < 2)) && (uVar12 != 0)) goto LAB_0008e048;
LAB_0008df60:
          local_16c = 0;
          if ((iVar8 == 0) || (local_168 == 0)) {
            uVar6 = *(uint *)(param_1 + 0xb0);
          }
          else {
            *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;
            *(undefined4 *)(puVar15 + -0x14) = 0x8df91;
            uVar7 = gettext();
            *(undefined4 *)(puVar15 + -0x10) = uVar7;
            *(undefined4 *)(puVar15 + -0x14) = local_15c;
            *(undefined4 *)(puVar15 + -0x18) = local_160;
            *(undefined4 *)(puVar15 + -0x1c) = local_164;
            *(int *)(puVar15 + -0x20) = local_168;
            *(undefined4 *)(puVar15 + -0x24) = 0x8dfb1;
            FUN_000d1a30();
            uVar6 = *(uint *)(param_1 + 0xb0);
          }
LAB_0008dfbd:
          local_1f4 = *(uint *)(param_1 + 0xb4);
          if ((local_1f4 == 0) || (uVar6 != uVar12)) {
LAB_0008e080:
            local_1f4 = uVar12;
            if (local_1e8 != 0x6b) goto LAB_0008dfe9;
LAB_0008e093:
            local_16c = 1;
            *(uint *)(puVar15 + -0x10) = local_1f4;
            *(undefined4 *)(puVar15 + -0x14) = 0x8e0ad;
            FUN_001e6ba0();
            iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
            if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
              *(undefined **)(puVar15 + -4) = &UNK_0009035c;
              FUN_00052750();
            }
LAB_0008e0c3:
            if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x3ef5) != '\0')) {
              local_16c = 2;
            }
          }
          else {
            if (local_1e8 == 0x6b) goto LAB_0008e093;
LAB_0008dfe9:
            if (local_1e8 == 0x6c) {
              local_16c = 1;
              iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
              if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
                *(undefined **)(puVar15 + -4) = &UNK_0008e4b2;
                FUN_00052750();
              }
              goto LAB_0008e0c3;
            }
          }
          local_1f8 = *(byte *)(local_1f4 + 0x28) & 0xf;
          local_200 = (undefined1 *)CONCAT31(local_200._1_3_,local_1f8 == 10);
          if (local_1f8 == 10) {
            *(undefined4 *)(puVar15 + -0x10) = 1;
            *(undefined4 *)(puVar15 + -0x14) = 0x8e336;
            local_20c = FUN_0004f6b0();
            if (local_20c == '\0') {
              if (local_1e8 < 0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008e35d. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(*(int *)(unaff_EDI + 0x25fbb3 + local_1e8 * 4) + iVar16))();
                return;
              }
            }
            else {
              local_22c = local_1d8[0][3];
              local_220 = local_1d8[0][5];
              local_21c = local_1e8 & 0x7fffffff;
              local_230 = local_1d8[0][1];
              local_224 = local_1d8[0][4];
              local_234 = *local_1d8[0];
              puVar3 = *(undefined4 **)(param_1 + 0x78);
              if (puVar3 == *(undefined4 **)(param_1 + 0x7c)) {
                local_23c = *(undefined4 **)(param_1 + 0x74);
                local_244 = (int)puVar3 - (int)local_23c;
                uVar12 = local_244 >> 5;
                if (uVar12 == 0) {
                  local_240 = (undefined4 *)0x20;
LAB_0008f9a2:
                  *(undefined4 **)(puVar15 + -0x10) = local_240;
                  *(undefined4 *)(puVar15 + -0x14) = 0x8f9b2;
                  local_238 = (undefined4 *)FUN_00246670();
                  local_248 = (int)local_240 + (int)local_238;
                  local_240 = local_238 + 8;
                }
                else {
                  uVar6 = uVar12 * 2;
                  if (uVar6 < uVar12) {
                    local_240 = (undefined4 *)0xffffffe0;
                    goto LAB_0008f9a2;
                  }
                  local_240 = (undefined4 *)0xffffffe0;
                  if (0x7ffffff < uVar6) goto LAB_0008f9a2;
                  if (uVar6 != 0) {
                    local_240 = (undefined4 *)(uVar12 << 6);
                    goto LAB_0008f9a2;
                  }
                  local_240 = (undefined4 *)0x20;
                  local_248 = 0;
                  local_238 = (undefined4 *)0x0;
                }
                puVar10 = (undefined4 *)(local_244 + (int)local_238);
                *puVar10 = param_4;
                puVar10[3] = local_230;
                puVar10[4] = puVar10[4] & 0x80000000 | local_21c;
                puVar10[1] = param_5;
                *(byte *)((int)puVar10 + 0x13) = (byte)(local_21c >> 0x18) & 0x7f;
                puVar10[2] = local_234;
                puVar10[7] = local_220;
                puVar10[5] = local_22c;
                puVar10[6] = local_224;
                puVar10 = local_238;
                puVar13 = local_23c;
                if (puVar3 != local_23c) {
                  do {
                    puVar14 = puVar13 + 8;
                    *puVar10 = *puVar13;
                    puVar10[1] = puVar13[1];
                    puVar10[2] = puVar13[2];
                    puVar10[3] = puVar13[3];
                    puVar10[4] = puVar13[4];
                    puVar10[5] = puVar13[5];
                    puVar10[6] = puVar13[6];
                    puVar10[7] = puVar13[7];
                    puVar10 = puVar10 + 8;
                    puVar13 = puVar14;
                  } while (puVar3 != puVar14);
                  local_240 = (undefined4 *)
                              ((int)local_238 +
                              ((int)puVar3 + (-0x20 - (int)local_23c) & 0xffffffe0U) + 0x40);
                }
                if (local_23c != (undefined4 *)0x0) {
                  *(undefined4 **)(puVar15 + -0x10) = local_23c;
                  *(undefined4 *)(puVar15 + -0x14) = 0x8faba;
                  FUN_00248220();
                }
                *(undefined4 **)(param_1 + 0x74) = local_238;
                *(undefined4 **)(param_1 + 0x78) = local_240;
                *(int *)(param_1 + 0x7c) = local_248;
              }
              else {
                puVar3[2] = local_234;
                puVar3[3] = local_230;
                *puVar3 = param_4;
                puVar3[4] = puVar3[4] & 0x80000000 | local_21c;
                puVar3[1] = param_5;
                *(byte *)((int)puVar3 + 0x13) = (byte)(local_1e8 >> 0x18) & 0x7f;
                puVar3[5] = local_22c;
                puVar3[6] = local_224;
                puVar3[7] = local_220;
                *(undefined4 **)(param_1 + 0x78) = puVar3 + 8;
              }
              if (local_1e8 - 0xb < 3) {
                local_224 = param_4[0x67];
                local_22c = param_4[0x66];
                iVar9 = param_4[100];
                iVar8 = local_224 + (local_22c - iVar9) * 8;
                uVar12 = iVar8 - param_4[0x65];
                if (uVar12 <= param_5) {
                  iVar11 = param_4[0x65] + param_5 + 1;
                  if (param_5 + 1 < uVar12) {
                    iVar8 = iVar11 + 0x1f;
                    if (-1 < iVar11) {
                      iVar8 = iVar11;
                    }
                    iVar8 = iVar9 + (iVar8 >> 5) * 4;
                    iVar11 = iVar11 % 0x20;
                    if (iVar11 < 0) {
                      iVar11 = iVar11 + 0x20;
                      iVar8 = iVar8 + -4;
                    }
                    param_4[0x66] = iVar8;
                    param_4[0x67] = iVar11;
                  }
                  else {
                    *(undefined4 *)(puVar15 + -0x10) = 0;
                    *(int *)(puVar15 + -0x14) = iVar11 - iVar8;
                    *(int *)(puVar15 + -0x18) = local_224;
                    *(int *)(puVar15 + -0x1c) = local_22c;
                    *(int **)(puVar15 + -0x20) = param_4 + 100;
                    *(undefined4 *)(puVar15 + -0x24) = 0x900aa;
                    local_254 = local_22c;
                    local_250 = local_224;
                    FUN_000ab3a0();
                    iVar9 = param_4[100];
                  }
                }
                *(uint *)(iVar9 + local_210) = *(uint *)(iVar9 + local_210) | local_214;
              }
              *(uint *)(puVar15 + -0x10) = local_1f4;
              *(undefined4 *)(puVar15 + -0x14) = 0x8f2ad;
              FUN_0006c210();
              if (local_1e8 < 0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008f2ca. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(*(int *)(unaff_EDI + 0x25ffaf + local_1e8 * 4) + iVar16))();
                return;
              }
            }
          }
          else if (local_1e8 < 0xff) {
                    /* WARNING: Could not recover jumptable at 0x0008e035. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(*(int *)(&UNK_0025f53f + local_1e8 * 4 + unaff_EDI) + iVar16))();
            return;
          }
          *(uint *)(puVar15 + -0xc) = local_1f4;
          *(undefined1 ***)(puVar15 + -0x10) = local_154;
          *(undefined4 *)(puVar15 + -0x14) = 0x8e377;
          FUN_001e7ee0();
          iVar8 = param_4[1];
          local_200 = local_154[0];
          *(int *)(puVar15 + -0x14) = unaff_EDI + 0x269ceb;
          *(undefined4 *)(puVar15 + -0x18) = 0x8e395;
          uVar7 = gettext();
          *(undefined1 **)(puVar15 + -8) = local_200;
          *(uint *)(puVar15 + -0xc) = local_1e8;
          *(int *)(puVar15 + -0x10) = iVar8;
          *(undefined4 *)(puVar15 + -0x14) = uVar7;
                    /* try { // try from 0008e3a7 to 0008e3ab has its CatchHandler @ 00090515 */
          *(undefined4 *)(puVar15 + -0x18) = 0x8e3ac;
          FUN_000d1330();
          if (local_154[0] != local_14c) {
            *(undefined1 **)(puVar15 + -0x14) = local_154[0];
            *(undefined4 *)(puVar15 + -0x18) = 0x8e3c8;
            FUN_00248220();
          }
          iVar8 = *(int *)(*(int *)(BYTE_ARRAY_003868b9 + unaff_EDI + 0x16) + 8);
          if (iVar8 == 0) {
            *(int *)(puVar15 + -0xc) = unaff_EDI + 0x26878f;
            *(undefined4 *)(puVar15 + -0x10) = 0x5c;
            *(int *)(puVar15 + -0x14) = unaff_EDI + 0x254654;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar15 + -0x18) = 0x90264;
            FUN_000da200();
          }
          if (*(char *)(iVar8 + 0x3fed) == '\0') goto LAB_0008e248;
          if (param_5 == param_4[0x52]) {
            if (local_1e8 != 0x26) {
LAB_0008e450:
                    /* try { // try from 0008e45e to 0008f32c has its CatchHandler @ 0009050e */
              *(undefined4 *)(puVar15 + -8) = 0x8e463;
              FUN_0008c440();
              goto joined_r0x0008e46f;
            }
            if (local_1f8 == 10) {
              if (((*(byte *)(param_1 + 8) & 2) != 0) && (*(char *)(iVar8 + 0x1a25) == '\0')) {
                bVar5 = *(byte *)(iVar8 + 0x2931);
joined_r0x0008e445:
                if (bVar5 == 0) goto LAB_0008e248;
              }
              goto LAB_0008e450;
            }
            if ((*(char *)(iVar8 + 0x1a25) != '\0') || (*(char *)(iVar8 + 0x2931) != '\0')) {
              bVar5 = *(byte *)(local_1f4 + 0x2a);
              local_1f8 = CONCAT31(local_1f8._1_3_,bVar5);
              if ((bVar5 & 7) == 0) {
                local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(local_1f4 + 0x2b));
                bVar5 = *(byte *)(local_1f4 + 0x2b) >> 5 & 1;
                if ((*(int *)(local_1f4 + 0xc) == 0xfff1) && (bVar5 == 0)) goto LAB_0008e450;
                if (*(int *)(local_1f4 + 0xc) == 0) goto joined_r0x0008e445;
              }
              else if ((byte)((bVar5 & 7) - 3) < 2) goto LAB_0008e450;
            }
          }
          else {
joined_r0x0008e46f:
            if (local_1e8 - 0xf < 0x50) {
                    /* WARNING: Could not recover jumptable at 0x0008e19c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(*(int *)(unaff_EDI + 0x25f93b + (local_1e8 - 0xf) * 4) + iVar16))();
              return;
            }
            local_1f8 = 0;
            if ((((local_1e8 - 0x2f < 0x12) &&
                 ((1 << ((byte)(local_1e8 - 0x2f) & 0x1f) & 0x3000fU) != 0)) &&
                ((*(byte *)(local_1f4 + 0x2a) & 7) == 0)) &&
               ((piVar2 = *(int **)(local_1f4 + 8), (*(byte *)(piVar2 + 0xb) & 1) == 0 &&
                (iVar8 = *(int *)(local_1f4 + 0xc), iVar8 == piVar2[0x52])))) {
              *(undefined4 *)(puVar15 + -8) = 0x8e5d1;
              iVar9 = FUN_00053620();
              local_1f4 = *(uint *)(iVar9 + 0x30) + local_1d8[0][4];
              local_1f0 = *(int *)(iVar9 + 0x34) + local_1d8[0][5] +
                          (uint)CARRY4(*(uint *)(iVar9 + 0x30),local_1d8[0][4]);
              pcVar1 = *(code **)(*piVar2 + 0x3c);
              if (pcVar1 == (code *)((int)&__DT_REL[0x26b4].r_info + unaff_EDI + 3)) {
                *(int *)(puVar15 + -0x10) = iVar8;
                *(int **)(puVar15 + -0x14) = piVar2 + 0x24;
                *(undefined4 *)(puVar15 + -0x18) = 0x8e612;
                uVar17 = FUN_000b2960();
              }
              else {
                *(int *)(puVar15 + -0x10) = iVar8;
                *(int **)(puVar15 + -0x14) = piVar2;
                *(undefined4 *)(puVar15 + -0x18) = 0x9018b;
                uVar17 = (*pcVar1)();
              }
              uVar12 = (uint)((ulonglong)uVar17 >> 0x20);
              if ((local_1e8 != 0x32) &&
                 (local_1f0 < uVar12 || local_1f0 - uVar12 < (uint)(local_1f4 < (uint)uVar17))) {
                if (local_1e8 == 0x40) {
                  uVar12 = local_1f4;
                  if (local_1f8 == 0) {
                    *(undefined4 *)(puVar15 + -8) = 0;
                    *(uint **)(puVar15 + -0xc) = local_1d0;
                    *(uint *)(puVar15 + -0x10) = param_5;
                    *(int **)(puVar15 + -0x14) = param_4;
                    *(undefined4 *)(puVar15 + -0x18) = 0x90330;
                    local_1f8 = FUN_00121d40();
                    uVar12 = extraout_ECX_00;
                  }
                  if (local_1d8[0][1] != 0) {
                    *(uint *)(puVar15 + -8) = uVar12;
                    *(int *)(puVar15 + -0xc) = unaff_EDI + 0x2685ab;
                    *(undefined4 *)(puVar15 + -0x10) = 0xc0;
                    *(undefined **)(puVar15 + -0x14) = &UNK_002697a3 + unaff_EDI;
                    /* WARNING: Subroutine does not return */
                    *(undefined **)(puVar15 + -0x18) = &UNK_000904e5;
                    FUN_000da200();
                  }
                  if ((*local_1d8[0] + 3U < local_1d0[0]) &&
                     ((*(byte *)(local_1f8 + 3 + *local_1d8[0]) & 0xfc) == 0xe8)) goto LAB_0008e248;
                }
                *(undefined4 *)(puVar15 + -8) = 0x8e698;
                FUN_0008c440();
              }
            }
          }
LAB_0008e248:
          puVar15 = puVar15 + -4;
          if (local_1e8 - 0xe < 0x4e) {
                    /* WARNING: Could not recover jumptable at 0x0008e263. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(*(int *)(unaff_EDI + 0x25fa7b + (local_1e8 - 0xe) * 4) + iVar16))();
            return;
          }
        }
      }
LAB_0008dda8:
      local_1ec = local_1ec + 1;
      param_7 = param_7 + 6;
    } while (param_8 != local_1ec);
    if ((local_16c != 0) && (local_168 != 0)) {
      *(int *)(puVar15 + -0x10) = unaff_EDI + 0x2699db;
      *(undefined4 *)(puVar15 + -0x14) = 0x8dde7;
      uVar7 = gettext();
      *(undefined4 *)(puVar15 + -0x10) = uVar7;
      *(undefined4 *)(puVar15 + -0x14) = local_15c;
      *(undefined4 *)(puVar15 + -0x18) = local_160;
      *(undefined4 *)(puVar15 + -0x1c) = local_164;
      *(int *)(puVar15 + -0x20) = local_168;
      *(undefined4 *)(puVar15 + -0x24) = 0x8de07;
      FUN_000d1a30();
    }
  }
  return;
}

