
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void set_section_addresses(Output_section_element_input * this,
   Symbol_table * param_1, Layout * layout, Output_section * output_section, uint64_t subalign,
   uint64_t * dot_value, uint64_t * param_6, Output_section * * dot_section, string * fill,
   Input_section_list * input_sections) */

void __thiscall
gold::Output_section_element_input::set_section_addresses
          (Output_section_element_input *this,Symbol_table *param_1,Layout *layout,
          Output_section *output_section,uint64_t subalign,uint64_t *dot_value,uint64_t *param_6,
          Output_section **dot_section,string *fill,Input_section_list *input_sections)

{
  int iVar1;
  anon_union_8_2_227b06d7_for_u1_ *paVar2;
  size_t *psVar3;
  Input_file *pIVar4;
  _func_int_varargs **pp_Var5;
  _func_int_varargs *p_Var6;
  pointer pcVar7;
  Sort_wildcard SVar8;
  undefined4 uVar9;
  undefined4 *puVar10;
  undefined **ppuVar11;
  pointer ppOVar12;
  _List_node_base *p_Var13;
  ulonglong uVar14;
  longlong lVar15;
  Input_section *pIVar16;
  Relobj *pRVar17;
  anon_union_4_4_139239c7_for_u2_ aVar18;
  _Alloc_hider _Var19;
  undefined4 uVar20;
  bool bVar21;
  int *piVar22;
  int iVar23;
  pointer pIVar24;
  Input_section *pIVar25;
  int iVar26;
  Output_section_data *pOVar27;
  anon_union_8_2_227b06d7_for_u1_ *paVar28;
  byte bVar29;
  pointer pIVar30;
  uint uVar31;
  _List_node_base *extraout_EDX;
  undefined4 extraout_EDX_00;
  uint *puVar32;
  uint uVar33;
  uint *puVar34;
  uint *puVar35;
  Input_section *pIVar36;
  _List_node_base *p_Var37;
  _List_node_base *p_Var38;
  ulonglong uVar39;
  uint local_134 [2];
  size_t sStack_128;
  uint auStack_124 [4];
  int *local_114;
  int *local_110;
  uint *local_10c;
  uint *local_108;
  anon_union_8_2_227b06d7_for_u1_ *local_104;
  int local_100;
  Sort_wildcard local_fc;
  Sort_wildcard local_f8;
  uint local_f4;
  uint local_f0;
  uint local_ec;
  int local_e8;
  ulonglong local_e4;
  anon_union_8_2_227b06d7_for_u1_ *local_dc;
  int *local_d8;
  undefined8 local_d4;
  uint local_cc;
  uint local_c8;
  uint local_c4;
  uint local_c0;
  Input_section *local_bc;
  undefined **local_b8;
  undefined8 local_b4;
  undefined1 local_a4 [24];
  undefined1 *local_8c [2];
  undefined1 local_84 [16];
  Input_section sis;
  Input_section_info isi;
  
  local_b8 = &_GLOBAL_OFFSET_TABLE_;
  local_b4._0_4_ =
       (Relobj *)
       (this->input_section_patterns_).
       super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>
       ._M_impl._M_finish;
  pIVar24 = (this->input_section_patterns_).
            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>
            ._M_impl._M_start;
  uVar33 = (int)(Relobj *)local_b4 - (int)pIVar24 >> 5;
  local_cc = uVar33;
  local_e4 = subalign;
  if (uVar33 != 0) {
    pIVar30 = (pointer)(((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24);
    bVar21 = false;
    do {
      if (pIVar24->sort != SORT_WILDCARD_NONE) {
        bVar21 = true;
      }
      pIVar24 = pIVar24 + 1;
    } while (pIVar30 != pIVar24);
    if (bVar21) {
      local_114 = (int *)operator_new(uVar33 * 0xc);
      piVar22 = local_114;
      uVar31 = uVar33;
      do {
        *piVar22 = 0;
        piVar22[1] = 0;
        piVar22[2] = 0;
        uVar31 = uVar31 - 1;
        piVar22 = piVar22 + 3;
      } while (uVar31 != 0);
      local_110 = local_114 + uVar33 * 3;
      p_Var37 = (input_sections->
                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                )._M_impl._M_node.super__List_node_base._M_next;
      local_f4 = local_cc;
      goto joined_r0x001608d0;
    }
  }
  local_114 = (int *)operator_new(0xc);
  local_f4 = 1;
  *local_114 = 0;
  local_114[1] = 0;
  local_114[2] = 0;
  local_110 = local_114 + 3;
  p_Var37 = (input_sections->
            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
            )._M_impl._M_node.super__List_node_base._M_next;
joined_r0x001608d0:
  puVar35 = auStack_124 + 2;
  if (p_Var37 != (_List_node_base *)input_sections) {
    local_d4 = CONCAT44(local_d4._4_4_,&isi.section_name_.field_2);
    local_bc = (Input_section *)local_a4;
    puVar34 = auStack_124 + 2;
    do {
      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;
                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */
      *(undefined4 *)((int)puVar34 + -0x14) = 0x160572;
      local_b4._0_4_ =
           Output_section::Input_section::relobj(*(Input_section **)((int)puVar34 + -0x10));
      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;
      *(undefined4 *)((int)puVar34 + -0x14) = 0x160586;
      uVar33 = Output_section::Input_section::shndx(*(Input_section **)((int)puVar34 + -0x10));
      isi.input_section_.shndx_ = (uint)p_Var37[1]._M_next;
      isi.input_section_.p2align_ = (uint)p_Var37[1]._M_prev;
      isi.input_section_.u1_.data_size._0_4_ = (p_Var37 + 1)[1]._M_next;
      isi.input_section_.u1_.data_size._4_4_ = (p_Var37 + 1)[1]._M_prev;
      isi.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3);
      isi.section_name_.field_2._M_allocated_capacity =
           isi.section_name_.field_2._M_allocated_capacity & 0xffffff00;
      isi.input_section_.section_order_index_ = (uint)p_Var37[3]._M_prev;
      isi.section_name_._M_dataplus._M_p = (pointer)local_d4;
      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;
      isi.section_name_._M_string_length = 0;
      isi.size_._0_4_ = (_List_node_base *)0x0;
      isi.size_._4_4_ = (_List_node_base *)0x0;
      isi.addralign_._0_4_ = 1;
      isi.addralign_._4_4_ = 0;
      if (pIVar4 != (Input_file *)0x0) {
        *(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;
        *(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;
                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */
        *(undefined4 *)((int)puVar34 + -0x14) = 0x160600;
        File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));
      }
      pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;
      *(uint *)((int)puVar34 + -8) = uVar33;
      *(Relobj **)((int)puVar34 + -0xc) = (Relobj *)local_b4;
      *(Input_section **)((int)puVar34 + -0x10) = local_bc;
                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */
      p_Var6 = pp_Var5[0x10];
      *(undefined4 *)((int)puVar34 + -0x14) = 0x160619;
      (*p_Var6)();
      *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;
                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */
      *(undefined4 *)((int)puVar34 + -0x18) = 0x16062a;
      bVar21 = is_compressed_debug_section(*(char **)((int)puVar34 + -0x14));
      if (bVar21) {
        local_d8 = (int *)local_84;
        *(undefined4 *)((int)puVar34 + -8) = 0;
        *(undefined1 **)((int)puVar34 + -0xc) =
             (undefined1 *)
             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);
        *(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;
        *(undefined1 ***)((int)puVar34 + -0x14) = local_8c;
        *(undefined4 *)((int)puVar34 + -0x18) = 0x160662;
        local_8c[0] = (undefined1 *)local_d8;
        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
        _M_construct<char*>();
        *(undefined1 ***)((int)puVar34 + -0x10) = local_8c;
        *(Input_section **)((int)puVar34 + -0x14) = &sis;
                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */
        *(undefined4 *)((int)puVar34 + -0x18) = 0x160674;
        corresponding_uncompressed_section_name
                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));
        uVar20 = isi.section_name_.field_2._M_allocated_capacity;
        _Var19 = isi.section_name_._M_dataplus;
        paVar28 = &sis.u1_;
        local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;
        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {
          if (sis.p2align_ != 0) {
            if (sis.p2align_ == 1) {
              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;
              isi.section_name_._M_string_length = sis.p2align_;
              isi.section_name_._M_dataplus._M_p[1] = '\0';
              goto LAB_001606d8;
            }
            local_dc = paVar28;
            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;
            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;
            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;
            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;
            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),
                   *(size_t *)((int)puVar34 + -0xc));
            paVar28 = local_dc;
          }
          isi.section_name_._M_string_length = sis.p2align_;
          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';
        }
        else {
          local_e8 = sis.u1_.data_size._0_4_;
          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {
            isi.section_name_._M_string_length = sis.p2align_;
            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;
            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;
          }
          else {
            isi.section_name_._M_string_length = sis.p2align_;
            local_ec = isi.section_name_.field_2._M_allocated_capacity;
            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;
            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;
            if (_Var19._M_p != (pointer)0x0) {
              sis.shndx_ = (uint)_Var19._M_p;
              sis.u1_.data_size._0_4_ = uVar20;
              goto LAB_001606d8;
            }
          }
          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;
          isi.section_name_._M_string_length = sis.p2align_;
          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;
          sis.shndx_ = (uint)paVar28;
          paVar28 = &sis.u1_;
        }
LAB_001606d8:
        sis.p2align_ = 0;
        *(undefined1 *)sis.shndx_ = 0;
        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {
          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;
          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;
          operator_delete(*(void **)((int)puVar34 + -0x14));
        }
        if ((int *)local_8c[0] != local_d8) {
          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];
          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;
          operator_delete(*(void **)((int)puVar34 + -0x14));
        }
      }
      else {
        *(Input_section **)((int)puVar34 + -0x10) = local_bc;
        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;
                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */
        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;
        std::string::_M_assign
                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));
      }
      puVar35 = (uint *)((int)puVar34 + -4);
      if ((Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8)) {
        *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;
        *(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;
        operator_delete(*(void **)((int)puVar34 + -0x14));
      }
      pRVar17 = (Relobj *)local_b4;
      if (p_Var37[1]._M_next == (_List_node_base *)0xfffffffc) {
        p_Var38 = p_Var37[3]._M_next;
        isi.size_._0_4_ = p_Var38[1]._M_prev;
        isi.size_._4_4_ = p_Var38[2]._M_next;
        p_Var13 = p_Var38->_M_next[1]._M_prev;
        if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {
          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;
        }
        else {
          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;
                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */
          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;
          isi.addralign_ = (*(code *)p_Var13)();
        }
      }
      else {
        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;
        *(uint *)((int)puVar34 + -0x10) = uVar33;
        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;
                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */
        p_Var6 = pp_Var5[0xf];
        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;
        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();
        pp_Var5 = (pRVar17->super_Object)._vptr_Object;
        *(uint *)((int)puVar34 + -0x10) = uVar33;
        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;
        p_Var6 = pp_Var5[0x17];
        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;
        isi.size_._4_4_ = extraout_EDX;
        iVar23 = (*p_Var6)();
        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);
      }
      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;
      if (pIVar4 != (Input_file *)0x0) {
        *(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;
        *(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;
        *(undefined4 *)((int)puVar34 + -0x18) = 0x160791;
        File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));
      }
      *(pointer *)((int)puVar34 + -0x10) =
           (((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p;
      *(Output_section_element_input **)((int)puVar34 + -0x14) = this;
                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */
      *(undefined4 *)((int)puVar34 + -0x18) = 0x1607a8;
      bVar21 = match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),
                               *(char **)((int)puVar34 + -0x10));
      if (bVar21) {
        pIVar24 = (this->input_section_patterns_).
                  super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>
                  ._M_impl._M_start;
        if ((this->input_section_patterns_).
            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>
            ._M_impl._M_finish != pIVar24) {
          if (local_cc != 0) {
            uVar33 = 0;
            while( true ) {
              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;
              if (pIVar24[uVar33].pattern_is_wildcard == false) {
                *(pointer *)((int)puVar34 + -0x10) = pcVar7;
                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;
                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;
                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));
              }
              else {
                *(undefined4 *)((int)puVar34 + -0xc) = 0;
                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;
                *(pointer *)((int)puVar34 + -0x14) = pcVar7;
                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;
                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),
                                 *(int *)((int)puVar34 + -0xc));
              }
              if (iVar23 == 0) break;
              uVar33 = uVar33 + 1;
              if (uVar33 == local_cc) goto LAB_001610b0;
              pIVar24 = (this->input_section_patterns_).
                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>
                        ._M_impl._M_start;
            }
            if (uVar33 < local_cc) {
              piVar22 = local_114;
              if (uVar33 < local_f4) {
                piVar22 = local_114 + uVar33 * 3;
              }
              puVar32 = (uint *)piVar22[1];
              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;
              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;
              *(uint **)((int)puVar34 + -0x10) = puVar32;
              *(int **)((int)puVar34 + -0x14) = piVar22;
              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;
              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::
              _M_realloc_insert<const_gold::Input_section_info&>
                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>
                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),
                         *(Input_section_info **)((int)puVar34 + -0xc));
              goto LAB_001612ad;
            }
          }
          goto LAB_001610b0;
        }
        puVar32 = (uint *)local_114[1];
        piVar22 = local_114;
        if (puVar32 == (uint *)local_114[2]) {
          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;
          *(uint **)((int)puVar34 + -0x10) = puVar32;
          *(int **)((int)puVar34 + -0x14) = local_114;
                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */
          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;
          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::
          _M_realloc_insert<const_gold::Input_section_info&>
                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>
                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),
                     *(Input_section_info **)((int)puVar34 + -0xc));
        }
        else {
LAB_00161250:
          *puVar32 = isi.input_section_.shndx_;
          puVar32[1] = isi.input_section_.p2align_;
          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;
          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;
          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;
          puVar32[5] = isi.input_section_.section_order_index_;
          puVar32[6] = (uint)(puVar32 + 8);
          *(undefined4 *)((int)puVar34 + -8) = 0;
          *(pointer *)((int)puVar34 + -0xc) =
               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;
          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;
          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;
                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */
          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;
          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
          _M_construct<char*>();
          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;
          puVar32[0xd] = (uint)isi.size_._4_4_;
          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;
          piVar22[1] = piVar22[1] + 0x40;
        }
LAB_001612ad:
        p_Var38 = p_Var37->_M_next;
        psVar3 = &(input_sections->
                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                  )._M_impl._M_node._M_size;
        *psVar3 = *psVar3 - 1;
        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;
        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;
        std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));
        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;
        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;
        operator_delete(*(void **)((int)puVar34 + -0x14));
      }
      else {
LAB_001610b0:
        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;
      }
      if (isi.section_name_._M_dataplus._M_p != (pointer)local_d4) {
        *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;
        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;
        operator_delete(*(void **)((int)puVar34 + -0x14));
      }
      puVar34 = (uint *)((int)puVar34 + -4);
      p_Var37 = p_Var38;
    } while (p_Var38 != (_List_node_base *)input_sections);
  }
  local_ec = 0;
  local_cc = (uint)*dot_value;
  local_c8 = *(uint *)((int)dot_value + 4);
  local_d8 = local_114 + 1;
  local_dc = (anon_union_8_2_227b06d7_for_u1_ *)(local_b8 + -0x2d01);
  uVar39 = local_e4 - 1;
  local_b4 = uVar39;
  local_f0 = (uint)((uVar39 & local_e4) >> 0x20) | (uint)(uVar39 & local_e4);
  local_e8 = (int)local_b8 + -0xeb73d;
  auStack_124[2] = (int)local_b8 + -0xeb73d;
  do {
    ppuVar11 = local_b8;
    local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);
    puVar34 = (uint *)*local_d8;
    puVar32 = (uint *)local_d8[-1];
    local_d4 = CONCAT44(local_d4._4_4_,puVar34);
    if (puVar34 != puVar32) {
      if (output_section == (Output_section *)0x0) {
        local_b4 = uVar39;
        puVar35[-2] = (uint)(local_b8 + -0x3dd65);
        puVar35[-3] = 0x6ed;
        puVar35[-4] = (int)ppuVar11 + -0xf7f6d;
                    /* WARNING: Subroutine does not return */
        puVar35[-5] = (uint)&LAB_00161519;
        do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);
      }
      SVar8 = (this->input_section_patterns_).
              super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>
              ._M_impl._M_start[local_ec].sort;
      if (SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE) {
        local_fc = this->filename_sort_;
        local_f8 = SVar8;
        iVar23 = (int)puVar34 - (int)puVar32;
        if (0x7fffffc0 < iVar23) {
          iVar23 = 0x1ffffff;
LAB_001609ce:
          local_100 = local_e8;
LAB_001609e8:
          puVar35[-3] = local_e8;
          puVar35[-4] = iVar23 << 6;
          local_b4._0_4_ = (Relobj *)(iVar23 << 6);
          puVar35[-5] = 0x160a08;
          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);
          iVar26 = (int)(Relobj *)local_b4;
          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);
          if (pIVar25 == (Input_section *)0x0) break;
          local_108 = puVar32 + 8;
          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);
          pIVar25->shndx_ = *puVar32;
          pIVar25->p2align_ = puVar32[1];
          *(uint *)&pIVar25->u1_ = puVar32[2];
          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];
          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);
          pIVar25->section_order_index_ = puVar32[5];
          paVar28 = &pIVar25[1].u1_;
          pIVar25[1].shndx_ = (uint)paVar28;
          if ((uint *)puVar32[6] == local_108) {
            *(uint *)&pIVar25[1].u1_ = puVar32[8];
            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];
            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);
            pIVar25[1].section_order_index_ = puVar32[0xb];
          }
          else {
            pIVar25[1].shndx_ = puVar32[6];
            *(uint *)&pIVar25[1].u1_ = puVar32[8];
          }
          uVar33 = puVar32[0xd];
          pIVar25[1].p2align_ = puVar32[7];
          puVar32[7] = 0;
          puVar32[6] = (uint)local_108;
          uVar31 = puVar32[0xc];
          *(undefined1 *)(puVar32 + 8) = 0;
          pIVar25[2].p2align_ = uVar33;
          uVar33 = puVar32[0xf];
          pIVar25[2].shndx_ = uVar31;
          uVar31 = puVar32[0xe];
          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;
          *(uint *)&pIVar25[2].u1_ = uVar31;
          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {
            local_bc = pIVar25;
          }
          else {
            auStack_124[3] = iVar23;
            iVar1 = iVar26 + -0x20;
            do {
              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;
              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);
              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);
              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);
              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);
              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);
              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);
              paVar2 = paVar28 + 8;
              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;
              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {
                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;
                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);
                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =
                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);
                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);
              }
              else {
                *(undefined4 **)(paVar28 + 7) = puVar10;
                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;
              }
              uVar33 = *(uint *)((int)paVar28 + -4);
              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);
              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;
              *(uint *)((int)paVar28 + -4) = 0;
              *(uint *)((int)paVar28 + 0x3c) = uVar33;
              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;
              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);
              *(undefined1 *)paVar28 = 0;
              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);
              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);
              paVar28 = paVar2;
            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));
            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);
            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);
          }
          *puVar32 = local_bc->shndx_;
          puVar32[1] = local_bc->p2align_;
          puVar32[2] = *(uint *)&local_bc->u1_;
          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);
          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;
          puVar32[5] = local_bc->section_order_index_;
          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];
          local_10c = (uint *)local_bc[1].shndx_;
          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {
            uVar33 = local_bc[1].p2align_;
            if (uVar33 != 0) {
              if (uVar33 == 1) {
                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;
                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];
                uVar33 = local_bc[1].p2align_;
              }
              else {
                local_108 = puVar32;
                puVar35[-2] = uVar33;
                puVar35[-3] = (uint)paVar28;
                puVar35[-4] = (uint)local_104;
                puVar35[-5] = 0x16134b;
                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);
                uVar33 = local_bc[1].p2align_;
                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];
                puVar32 = local_108;
              }
            }
            puVar32[7] = uVar33;
            *(undefined1 *)((int)local_104 + uVar33) = 0;
            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;
          }
          else {
            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {
              puVar32[6] = (uint)local_10c;
              puVar32[7] = local_bc[1].p2align_;
              puVar32[8] = *(uint *)&local_bc[1].u1_;
            }
            else {
              local_108 = (uint *)puVar32[8];
              puVar32[6] = (uint)local_10c;
              puVar32[7] = local_bc[1].p2align_;
              puVar32[8] = *(uint *)&local_bc[1].u1_;
              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {
                local_bc[1].shndx_ = (uint)local_104;
                *(uint **)&local_bc[1].u1_ = local_108;
                goto LAB_001611b8;
              }
            }
            local_104 = paVar28;
            local_bc[1].shndx_ = (uint)paVar28;
          }
LAB_001611b8:
          local_bc[1].p2align_ = 0;
          *(undefined1 *)local_104 = 0;
          uVar33 = local_bc[2].p2align_;
          puVar32[0xc] = local_bc[2].shndx_;
          puVar32[0xd] = uVar33;
          uVar33 = *(uint *)&local_bc[2].u1_;
          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);
          puVar32[0xe] = uVar33;
          puVar35[-3] = local_f8;
          puVar35[-4] = local_fc;
          puVar35[-5] = iVar23;
          puVar35[-6] = (uint)pIVar25;
          puVar35[-7] = (uint)(pointer)local_d4;
          puVar35[-8] = (uint)puVar32;
                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */
          puVar35[-9] = 0x161203;
          std::
          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],
                     (Input_section_info *)puVar35[-6],puVar35[-5],
                     (_Iter_comp_iter<gold::Input_section_sorter>)
                     *(Input_section_sorter *)(puVar35 + -4));
          goto LAB_00160b99;
        }
        if (0 < iVar23) {
          iVar23 = iVar23 >> 6;
          goto LAB_001609ce;
        }
        local_100 = auStack_124[2];
LAB_00160b72:
        local_b4 = uVar39;
        puVar35[-1] = local_f8;
        puVar35[-2] = local_fc;
        puVar35[-3] = (uint)(pointer)local_d4;
        puVar35[-4] = (uint)puVar32;
                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */
        puVar35[-5] = 0x160b8a;
        std::
        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],
                   (_Iter_comp_iter<gold::Input_section_sorter>)
                   *(Input_section_sorter *)(puVar35 + -2));
        local_b4._0_4_ = (Relobj *)0x0;
        pIVar25 = (Input_section *)0x0;
LAB_00160b99:
        pIVar36 = pIVar25;
        if ((Relobj *)local_b4 != (Relobj *)pIVar25) {
          do {
            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {
              puVar35[-4] = (uint)pIVar36[1].shndx_;
              puVar35[-5] = 0x160bc1;
              operator_delete((void *)puVar35[-4]);
            }
            pIVar16 = pIVar36 + 2;
            pIVar36 = (Input_section *)&pIVar16->u2_;
          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);
        }
        puVar35[-3] = local_100;
        puVar35[-4] = (uint)pIVar25;
        puVar35[-5] = 0x160be4;
        operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);
        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);
        puVar32 = (uint *)local_d8[-1];
        if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;
      }
      local_b4._0_4_ = (Relobj *)puVar32;
      do {
        sis.shndx_ = *(uint *)(Relobj *)local_b4;
        sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);
        sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);
        sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);
        sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);
        sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);
        if (sis.p2align_ == 0) {
          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {
            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];
            if (ppuVar11 != local_b8 + -0xc6e88) {
              puVar35[-4] = (uint)sis.u2_;
              puVar35[-5] = 0x161066;
              uVar39 = (*(code *)ppuVar11)();
              goto LAB_00160fa4;
            }
            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);
            goto LAB_00160dde;
          }
          puVar35[-4] = (uint)&sis;
          local_bc = &sis;
                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */
          puVar35[-5] = 0x160fd8;
          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);
          uVar14 = local_e4;
          if (local_e4 != 0) goto LAB_00160ffd;
LAB_00160d10:
          local_c4 = local_cc;
          local_c0 = local_c8;
        }
        else {
          uVar33 = sis.p2align_ - 1 >> 5 & 1;
          bVar29 = (byte)(sis.p2align_ - 1);
          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));
LAB_00160fa4:
          if (0xfffffffb < sis.shndx_) {
LAB_00160dde:
            aVar18 = sis.u2_;
            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {
              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;
              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;
              p_Var6 = pp_Var5[0xe];
              puVar35[-5] = 0x160ded;
              (*p_Var6)();
              ppuVar11 = local_b8;
              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {
                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);
                puVar35[-3] = 0x163;
                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);
                    /* WARNING: Subroutine does not return */
                puVar35[-5] = 0x1614f8;
                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);
              }
            }
          }
          puVar35[-4] = (uint)&sis;
          local_bc = &sis;
          puVar35[-5] = 0x160e12;
          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);
          uVar14 = local_e4;
          if (local_e4 == 0) {
            uVar14 = uVar39;
            if (uVar39 == 0) goto LAB_00160d10;
          }
          else {
LAB_00160ffd:
            ppuVar11 = local_b8;
            local_e4 = uVar14;
            if (local_f0 != 0) {
              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);
              puVar35[-3] = 0xedf;
              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);
                    /* WARNING: Subroutine does not return */
              puVar35[-5] = 0x1614d7;
              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);
            }
            *(ulonglong *)(puVar35 + -4) = uVar14;
            puVar35[-5] = 0x161027;
            sis.p2align_ = __ffsdi2();
          }
          ppuVar11 = local_b8;
          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);
          local_c4 = (uint)lVar15 & -(int)uVar14;
          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &
                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));
          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&
             (fill->_M_string_length != 0)) {
            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {
              puVar35[-2] = (uint)(local_b8 + -0x3dd18);
              puVar35[-3] = 0xc0;
              puVar35[-4] = (int)ppuVar11 + -0x107be7;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */
              puVar35[-5] = 0x1614b6;
              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);
            }
            puVar35[-1] = local_c4 - local_cc;
            puVar35[-2] = (uint)fill;
            puVar35[-3] = (uint)this;
            puVar35[-4] = (uint)&isi;
            puVar35[-5] = 0x160ec0;
            Output_section_element::get_fill_string
                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],
                       (string *)puVar35[-2],puVar35[-1]);
            puVar35[-4] = 0x44;
                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */
            puVar35[-5] = 0x160ecf;
            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);
            uVar31 = isi.input_section_.p2align_;
            uVar33 = isi.input_section_.shndx_;
            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;
            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;
            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;
            pOVar27->output_section_ = (Output_section *)0x0;
            *(undefined4 *)&pOVar27->addralign_ = 0;
            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;
            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;
            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;
            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;
            (pOVar27->super_Output_data).field_0x1c =
                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;
            (pOVar27->super_Output_data)._vptr_Output_data =
                 (_func_int_varargs **)((int)local_dc + 8);
            pOVar27[1].super_Output_data._vptr_Output_data =
                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);
            puVar35[-1] = 0;
            puVar35[-2] = uVar31 + uVar33;
            puVar35[-3] = uVar33;
            puVar35[-4] = (uint)(pOVar27 + 1);
                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */
            puVar35[-5] = 0x160f42;
            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
            _M_construct<char*>();
            puVar35[-3] = (uint)pOVar27;
            puVar35[-4] = (uint)output_section;
                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */
            puVar35[-5] = 0x160f4d;
            Output_section::add_output_section_data
                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);
            local_a4._0_4_ = pOVar27;
            if (layout->record_output_section_data_from_script_ != false) {
              ppOVar12 = (layout->script_output_section_data_list_).
                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
                         ._M_impl._M_finish;
              if (ppOVar12 ==
                  (layout->script_output_section_data_list_).
                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
                  ._M_impl._M_end_of_storage) {
                puVar35[-2] = (uint)local_a4;
                puVar35[-3] = (uint)ppOVar12;
                puVar35[-4] = (uint)&layout->script_output_section_data_list_;
                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */
                puVar35[-5] = 0x161091;
                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
                ::_M_realloc_insert<gold::Output_section_data*_const&>
                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
                            *)puVar35[-4],(Output_section_data **)puVar35[-3],
                           (Output_section_data **)puVar35[-2]);
              }
              else {
                *ppOVar12 = pOVar27;
                (layout->script_output_section_data_list_).
                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
                ._M_impl._M_finish = ppOVar12 + 1;
              }
            }
            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=
                &isi.input_section_.u1_) {
              puVar35[-4] = isi.input_section_.shndx_;
              puVar35[-5] = 0x160f83;
              operator_delete((void *)puVar35[-4]);
            }
          }
        }
        puVar35[-3] = (uint)local_bc;
        puVar35[-4] = (uint)output_section;
                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */
        puVar35[-5] = 0x160d3f;
        Output_section::add_script_input_section
                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);
        local_cc = (int)(pointer)local_d4 + local_c4;
        local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);
        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);
        local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);
      } while ((Relobj *)*local_d8 != (Relobj *)local_b4);
    }
LAB_00160c00:
    local_ec = local_ec + 1;
    local_d8 = local_d8 + 3;
    if (local_ec == local_f4) {
      if (((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||
         (output_section->type_ != 8)) {
        *(uint *)dot_value = local_cc;
        *(uint *)((int)dot_value + 4) = local_c8;
      }
      else {
        local_c8 = *(uint *)((int)dot_value + 4);
        local_cc = (uint)*dot_value;
      }
      *(uint *)&this->final_dot_value_ = local_cc;
      *(uint *)((int)&this->final_dot_value_ + 4) = local_c8;
      this->final_dot_section_ = *dot_section;
      piVar22 = local_114;
      if (local_110 != local_114) {
        do {
          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);
          iVar23 = piVar22[1];
          iVar26 = *piVar22;
          if (iVar23 != iVar26) {
            local_b4._0_4_ = (Relobj *)iVar26;
            do {
              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {
                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);
                puVar35[-5] = 0x160caf;
                operator_delete((void *)puVar35[-4]);
              }
              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);
              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);
            } while ((Relobj *)iVar23 != (Relobj *)local_b4);
            iVar26 = *piVar22;
          }
          if (iVar26 != 0) {
            local_b4 = uVar39;
            puVar35[-4] = iVar26;
            puVar35[-5] = 0x160cd8;
            operator_delete((void *)puVar35[-4]);
            uVar39 = local_b4;
          }
          piVar22 = piVar22 + 3;
        } while (piVar22 != local_110);
      }
      local_b4 = uVar39;
      puVar35[-4] = (uint)local_114;
      puVar35[-5] = 0x160cfa;
      operator_delete((void *)puVar35[-4]);
      return;
    }
  } while( true );
  iVar23 = iVar23 >> 1;
  if (iVar23 == 0) goto LAB_00160b72;
  goto LAB_001609e8;
}



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

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

{
  int ****ppppiVar1;
  int ****ppppiVar2;
  code *pcVar3;
  int ***pppiVar4;
  undefined **ppuVar5;
  int **ppiVar6;
  int *piVar7;
  bool bVar8;
  longlong lVar9;
  longlong lVar10;
  uint **ppuVar11;
  char cVar12;
  int iVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  undefined4 *puVar16;
  int ****ppppiVar17;
  int ***pppiVar18;
  int ****ppppiVar19;
  byte bVar20;
  int iVar21;
  uint ***pppuVar22;
  uint uVar23;
  int ****ppppiVar24;
  uint uVar25;
  undefined4 *puVar26;
  int *piVar27;
  undefined1 *puVar28;
  int iVar29;
  longlong lVar30;
  longlong lVar31;
  int local_11c;
  int local_118;
  undefined4 *local_114;
  undefined4 *local_110;
  uint ***local_10c;
  uint ***local_108;
  uint ***local_104;
  int local_100;
  int local_fc;
  int local_f8;
  uint local_f4;
  uint local_f0;
  uint **local_ec;
  uint **local_e8;
  uint local_e4;
  uint local_e0;
  int ***local_dc;
  undefined4 *local_d8;
  undefined8 local_d4;
  undefined8 local_cc;
  undefined8 local_c4;
  uint ***local_bc;
  undefined **local_b8;
  uint ***local_b4;
  uint local_b0;
  uint **local_a4;
  int local_a0;
  uint *local_9c [4];
  undefined1 *local_8c [2];
  undefined1 local_84 [16];
  int ***local_74;
  uint **local_70;
  uint **local_6c;
  uint **local_68;
  uint **local_64;
  uint **local_60;
  undefined4 *local_5c;
  uint *local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  int ***local_44;
  uint **local_40;
  uint **local_3c [4];
  undefined8 local_2c;
  undefined8 local_24;
  
  local_b8 = &__DT_PLTGOT;
  local_e4 = param_5;
  local_b4 = *(uint ****)(param_1 + 0x34);
  local_e0 = param_6;
  iVar13 = *(int *)(param_1 + 0x30);
  uVar25 = (int)local_b4 - iVar13 >> 5;
  local_cc._0_4_ = uVar25;
  if (uVar25 != 0) {
    iVar21 = ((int)local_b4 - iVar13) + iVar13;
    bVar8 = false;
    do {
      if (*(int *)(iVar13 + 0x1c) != 0) {
        bVar8 = true;
      }
      iVar13 = iVar13 + 0x20;
    } while (iVar21 != iVar13);
    if (bVar8) {
      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);
      puVar14 = local_114;
      uVar23 = uVar25;
      do {
        *puVar14 = 0;
        puVar14[1] = 0;
        puVar14[2] = 0;
        uVar23 = uVar23 - 1;
        puVar14 = puVar14 + 3;
      } while (uVar23 != 0);
      local_110 = local_114 + uVar25 * 3;
      puVar14 = (undefined4 *)*param_11;
      local_f4 = (uint)local_cc;
      goto joined_r0x001608d0;
    }
  }
  local_114 = (undefined4 *)FUN_001e5200(0xc);
  local_f4 = 1;
  *local_114 = 0;
  local_114[1] = 0;
  local_114[2] = 0;
  local_110 = local_114 + 3;
  puVar14 = (undefined4 *)*param_11;
joined_r0x001608d0:
  piVar27 = &local_11c;
  if (puVar14 != param_11) {
    piVar27 = &local_11c;
    local_d4._0_4_ = (int ****)local_3c;
    local_bc = &local_a4;
    do {
      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;
                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */
      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;
      local_b4 = (uint ***)FUN_000ede60();
      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;
      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;
      uVar15 = FUN_000edef0();
      local_5c = (undefined4 *)puVar14[2];
      local_58 = (uint *)puVar14[3];
      local_54 = puVar14[4];
      local_50 = puVar14[5];
      local_4c = puVar14[6];
      local_48 = puVar14[7];
      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);
      local_44 = (int ***)(int ****)local_d4;
      iVar13 = (int)local_b4[7];
      local_40 = (uint **)0x0;
      local_2c._0_4_ = 0;
      local_2c._4_4_ = 0;
      local_24._0_4_ = 1;
      local_24._4_4_ = 0;
      if (iVar13 != 0) {
        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;
        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;
                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;
        FUN_000669a0();
      }
      iVar13 = (int)*local_b4;
      *(undefined4 *)((int)piVar27 + -8) = uVar15;
      *(uint ****)((int)piVar27 + -0xc) = local_b4;
      *(uint ****)((int)piVar27 + -0x10) = local_bc;
                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */
      pcVar3 = *(code **)(iVar13 + 0x40);
      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;
      (*pcVar3)();
      *(uint ***)((int)piVar27 + -0x14) = local_a4;
                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */
      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;
      cVar12 = FUN_00096ec0();
      if (cVar12 == '\0') {
        *(uint ****)((int)piVar27 + -0x10) = local_bc;
        *(int *****)((int)piVar27 + -0x14) = &local_44;
                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */
        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;
        FUN_001ee9c0();
        puVar28 = (undefined1 *)((int)piVar27 + -4);
      }
      else {
        local_d8 = (undefined4 *)local_84;
        *(undefined4 *)((int)piVar27 + -8) = 0;
        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;
        *(uint ***)((int)piVar27 + -0x10) = local_a4;
        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;
        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;
        local_8c[0] = (undefined1 *)local_d8;
        FUN_000513a0();
        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;
        *(int *****)((int)piVar27 + -0x14) = &local_74;
                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */
        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;
        FUN_0009e270();
        ppuVar11 = local_3c[0];
        pppiVar18 = local_44;
        local_dc = local_74;
        pppuVar22 = &local_6c;
        if ((uint ***)local_74 == &local_6c) {
          if ((int ***)local_70 != (int ***)0x0) {
            if ((int ***)local_70 == (int ***)0x1) {
              *(undefined1 *)local_44 = local_6c._0_1_;
              local_40 = local_70;
              *(undefined1 *)((int)local_44 + 1) = 0;
              goto LAB_001606d8;
            }
            local_dc = (int ***)&local_6c;
            *(uint ***)((int)piVar27 + -0x10) = local_70;
            *(uint ****)((int)piVar27 + -0x14) = &local_6c;
            *(int ****)((int)piVar27 + -0x18) = local_44;
            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;
            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),
                   *(size_t *)((int)piVar27 + -0x10));
            pppuVar22 = (uint ***)local_dc;
          }
          *(undefined1 *)((int)local_44 + (int)local_70) = 0;
          local_40 = local_70;
        }
        else {
          local_e8 = local_6c;
          if ((int ****)local_44 != (int ****)local_d4) {
            local_40 = local_70;
            local_ec = local_3c[0];
            local_3c[0] = local_6c;
            local_44 = local_74;
            if ((uint ***)pppiVar18 != (uint ***)0x0) {
              local_74 = pppiVar18;
              local_6c = ppuVar11;
              goto LAB_001606d8;
            }
          }
          local_3c[0] = local_6c;
          local_40 = local_70;
          local_44 = local_74;
          pppuVar22 = &local_6c;
          local_74 = (int ***)&local_6c;
        }
LAB_001606d8:
        local_70 = (uint **)0x0;
        *(undefined1 *)local_74 = 0;
        if ((uint ***)local_74 != pppuVar22) {
          *(int ****)((int)piVar27 + -0x18) = local_74;
          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;
          FUN_001e6db0();
        }
        puVar28 = (undefined1 *)((int)piVar27 + -8);
        if ((undefined4 *)local_8c[0] != local_d8) {
          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];
          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;
          FUN_001e6db0();
          puVar28 = (undefined1 *)((int)piVar27 + -8);
        }
      }
      piVar27 = (int *)puVar28;
      if (local_a4 != local_9c) {
        *(uint ***)((int)piVar27 + -0x10) = local_a4;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;
        FUN_001e6db0();
      }
      pppuVar22 = local_b4;
      if (puVar14[2] == -4) {
        piVar7 = (int *)puVar14[6];
        local_2c._0_4_ = piVar7[3];
        local_2c._4_4_ = piVar7[4];
        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);
        if (ppuVar5 == local_b8 + -0xc6e88) {
          local_24 = *(undefined8 *)(piVar7 + 9);
          local_2c = *(undefined8 *)(piVar7 + 3);
        }
        else {
          *(int **)((int)piVar27 + -0x10) = piVar7;
                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */
          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;
          local_24 = (*(code *)ppuVar5)();
        }
      }
      else {
        iVar13 = (int)*local_b4;
        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;
        *(uint ****)((int)piVar27 + -0x10) = local_b4;
                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */
        pcVar3 = *(code **)(iVar13 + 0x3c);
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;
        local_2c = (*pcVar3)();
        iVar13 = (int)*pppuVar22;
        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;
        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;
        pcVar3 = *(code **)(iVar13 + 0x5c);
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;
        local_24 = (*pcVar3)();
      }
      iVar13 = (int)local_b4[7];
      if (iVar13 != 0) {
        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;
        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;
        FUN_000679d0();
      }
      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];
      *(int *)((int)piVar27 + -0x10) = param_1;
                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */
      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;
      cVar12 = FUN_0015b690();
      if (cVar12 == '\0') {
LAB_001610b0:
        puVar16 = (undefined4 *)*puVar14;
      }
      else {
        iVar13 = *(int *)(param_1 + 0x30);
        if (*(int *)(param_1 + 0x34) != iVar13) {
          if ((uint)local_cc != 0) {
            uVar25 = 0;
            while( true ) {
              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);
              uVar15 = *puVar16;
              if (*(char *)(puVar16 + 6) == '\0') {
                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;
                *(int ****)((int)piVar27 + -0x10) = local_44;
                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;
                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));
              }
              else {
                *(undefined4 *)((int)piVar27 + -8) = 0;
                *(int ****)((int)piVar27 + -0xc) = local_44;
                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;
                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;
                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),
                                 *(int *)((int)piVar27 + -8));
              }
              if (iVar13 == 0) break;
              uVar25 = uVar25 + 1;
              if (uVar25 == (uint)local_cc) goto LAB_001610b0;
              iVar13 = *(int *)(param_1 + 0x30);
            }
            if (uVar25 < (uint)local_cc) {
              puVar16 = local_114;
              if (uVar25 < local_f4) {
                puVar16 = local_114 + uVar25 * 3;
              }
              puVar26 = (undefined4 *)puVar16[1];
              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;
              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;
              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;
              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;
              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;
              FUN_00163d60();
              goto LAB_001612ad;
            }
          }
          goto LAB_001610b0;
        }
        puVar26 = (undefined4 *)local_114[1];
        puVar16 = local_114;
        if (puVar26 == (undefined4 *)local_114[2]) {
          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;
          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;
          *(undefined4 **)((int)piVar27 + -0x10) = local_114;
                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */
          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;
          FUN_00163d60();
        }
        else {
LAB_00161250:
          *puVar26 = local_5c;
          puVar26[1] = local_58;
          puVar26[2] = local_54;
          puVar26[3] = local_50;
          puVar26[4] = local_4c;
          puVar26[5] = local_48;
          puVar26[6] = puVar26 + 8;
          *(undefined4 *)((int)piVar27 + -4) = 0;
          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);
          *(int ****)((int)piVar27 + -0xc) = local_44;
          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;
                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */
          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;
          FUN_000513a0();
          *(undefined8 *)(puVar26 + 0xc) = local_2c;
          *(undefined8 *)(puVar26 + 0xe) = local_24;
          puVar16[1] = puVar16[1] + 0x40;
        }
LAB_001612ad:
        puVar16 = (undefined4 *)*puVar14;
        param_11[2] = param_11[2] + -1;
        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;
        FUN_001e9f90();
        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;
        FUN_001e6db0();
      }
      if ((int ****)local_44 != (int ****)local_d4) {
        *(int ****)((int)piVar27 + -0x10) = local_44;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;
        FUN_001e6db0();
      }
      puVar14 = puVar16;
    } while (puVar16 != param_11);
  }
  local_ec = (uint **)0x0;
  local_cc = *param_7;
  local_d8 = local_114 + 1;
  local_dc = (int ***)(local_b8 + -0x2d01);
  local_b4 = (uint ***)(local_e4 - 1);
  local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);
  local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;
  local_11c = (int)local_b8 + -0xeb73d;
  local_e8 = (uint **)local_11c;
  do {
    ppuVar5 = local_b8;
    local_d4._0_4_ = (int ****)*local_d8;
    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);
    ppppiVar24 = (int ****)local_d8[-1];
    if ((int ****)local_d4 != ppppiVar24) {
      if (param_4 == 0) {
        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;
        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;
        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;
                    /* WARNING: Subroutine does not return */
        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;
        FUN_00069d00();
      }
      iVar13 = *(int *)(param_1 + 0x20);
      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);
      puVar28 = (undefined1 *)piVar27;
      if (iVar21 != 0 || iVar13 != 0) {
        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;
        local_fc = iVar13;
        local_f8 = iVar21;
        if (0x7fffffc0 < iVar29) {
          iVar29 = 0x1ffffff;
LAB_001609ce:
          local_100 = (int)local_e8;
LAB_001609e8:
          *(uint ***)((int)piVar27 + -0xc) = local_e8;
          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);
          local_b4 = (uint ***)(iVar29 << 6);
          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;
          ppppiVar17 = (int ****)FUN_001e51a0();
          pppuVar22 = local_b4;
          if (ppppiVar17 == (int ****)0x0) break;
          local_108 = (uint ***)(ppppiVar24 + 8);
          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);
          *ppppiVar17 = *ppppiVar24;
          ppppiVar17[1] = ppppiVar24[1];
          ppppiVar17[2] = ppppiVar24[2];
          ppppiVar17[3] = ppppiVar24[3];
          ppppiVar17[4] = ppppiVar24[4];
          ppppiVar17[5] = ppppiVar24[5];
          ppppiVar19 = ppppiVar17 + 8;
          ppppiVar17[6] = (int ***)ppppiVar19;
          if ((uint ***)ppppiVar24[6] == local_108) {
            ppppiVar17[8] = ppppiVar24[8];
            ppppiVar17[9] = ppppiVar24[9];
            ppppiVar17[10] = ppppiVar24[10];
            ppppiVar17[0xb] = ppppiVar24[0xb];
          }
          else {
            ppppiVar17[6] = ppppiVar24[6];
            ppppiVar17[8] = ppppiVar24[8];
          }
          pppiVar18 = ppppiVar24[0xd];
          ppppiVar17[7] = ppppiVar24[7];
          ppppiVar24[7] = (int ***)0x0;
          ppppiVar24[6] = (int ***)local_108;
          pppiVar4 = ppppiVar24[0xc];
          *(undefined1 *)(ppppiVar24 + 8) = 0;
          ppppiVar17[0xd] = pppiVar18;
          pppiVar18 = ppppiVar24[0xf];
          ppppiVar17[0xc] = pppiVar4;
          pppiVar4 = ppppiVar24[0xe];
          ppppiVar17[0xf] = pppiVar18;
          ppppiVar17[0xe] = pppiVar4;
          if ((int ****)local_b4 == ppppiVar17 + 0x10) {
            local_bc = (uint ***)ppppiVar17;
          }
          else {
            local_118 = iVar29;
            ppppiVar1 = (int ****)(pppuVar22 + -8);
            do {
              ppppiVar19[8] = ppppiVar19[-8];
              ppppiVar19[9] = ppppiVar19[-7];
              ppppiVar19[10] = ppppiVar19[-6];
              ppppiVar19[0xb] = ppppiVar19[-5];
              ppppiVar19[0xc] = ppppiVar19[-4];
              ppppiVar19[0xd] = ppppiVar19[-3];
              ppppiVar2 = ppppiVar19 + 0x10;
              ppppiVar19[0xe] = (int ***)ppppiVar2;
              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {
                ppppiVar19[0x10] = *ppppiVar19;
                ppppiVar19[0x11] = ppppiVar19[1];
                ppppiVar19[0x12] = ppppiVar19[2];
                ppppiVar19[0x13] = ppppiVar19[3];
              }
              else {
                ppppiVar19[0xe] = ppppiVar19[-2];
                ppppiVar19[0x10] = *ppppiVar19;
              }
              pppiVar18 = ppppiVar19[-1];
              ppppiVar19[-2] = (int ***)ppppiVar19;
              ppppiVar19[-1] = (int ***)0x0;
              ppppiVar19[0xf] = pppiVar18;
              ppppiVar19[0x15] = ppppiVar19[5];
              ppppiVar19[0x14] = ppppiVar19[4];
              *(undefined1 *)ppppiVar19 = 0;
              ppppiVar19[0x16] = ppppiVar19[6];
              ppppiVar19[0x17] = ppppiVar19[7];
              ppppiVar19 = ppppiVar2;
            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));
            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);
            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);
          }
          *ppppiVar24 = (int ***)*local_bc;
          ppppiVar24[1] = (int ***)local_bc[1];
          ppppiVar24[2] = (int ***)local_bc[2];
          ppppiVar24[3] = (int ***)local_bc[3];
          ppppiVar24[4] = (int ***)local_bc[4];
          ppppiVar24[5] = (int ***)local_bc[5];
          local_104 = (uint ***)ppppiVar24[6];
          local_10c = (uint ***)local_bc[6];
          if (ppppiVar19 == (int ****)local_10c) {
            pppiVar18 = (int ***)local_bc[7];
            if (pppiVar18 != (int ***)0x0) {
              if (pppiVar18 == (int ***)0x1) {
                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);
                local_104 = (uint ***)ppppiVar24[6];
                pppiVar18 = (int ***)local_bc[7];
              }
              else {
                local_108 = (uint ***)ppppiVar24;
                *(int ****)((int)piVar27 + -8) = pppiVar18;
                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;
                *(uint ****)((int)piVar27 + -0x10) = local_104;
                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;
                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),
                       *(size_t *)((int)piVar27 + -8));
                pppiVar18 = (int ***)local_bc[7];
                local_104 = (uint ***)local_108[6];
                ppppiVar24 = (int ****)local_108;
              }
            }
            ppppiVar24[7] = pppiVar18;
            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;
            local_104 = (uint ***)local_bc[6];
          }
          else {
            if (local_108 == local_104) {
              ppppiVar24[6] = (int ***)local_10c;
              ppppiVar24[7] = (int ***)local_bc[7];
              ppppiVar24[8] = (int ***)local_bc[8];
            }
            else {
              local_108 = (uint ***)ppppiVar24[8];
              ppppiVar24[6] = (int ***)local_10c;
              ppppiVar24[7] = (int ***)local_bc[7];
              ppppiVar24[8] = (int ***)local_bc[8];
              if ((int ****)local_104 != (int ****)0x0) {
                local_bc[6] = (uint **)local_104;
                local_bc[8] = (uint **)local_108;
                goto LAB_001611b8;
              }
            }
            local_bc[6] = (uint **)ppppiVar19;
            local_104 = (uint ***)ppppiVar19;
          }
LAB_001611b8:
          local_bc[7] = (uint **)0x0;
          *(undefined1 *)local_104 = 0;
          pppiVar18 = (int ***)local_bc[0xd];
          ppppiVar24[0xc] = (int ***)local_bc[0xc];
          ppppiVar24[0xd] = pppiVar18;
          pppiVar18 = (int ***)local_bc[0xe];
          ppppiVar24[0xf] = (int ***)local_bc[0xf];
          ppppiVar24[0xe] = pppiVar18;
          *(int *)((int)piVar27 + -0xc) = local_f8;
          *(int *)((int)piVar27 + -0x10) = local_fc;
          *(int *)((int)piVar27 + -0x14) = iVar29;
          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;
          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;
          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;
                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */
          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;
          FUN_00167d90();
          goto LAB_00160b99;
        }
        if (0 < iVar29) {
          iVar29 = iVar29 >> 6;
          goto LAB_001609ce;
        }
        local_100 = local_11c;
LAB_00160b72:
        *(int *)((int)piVar27 + -4) = local_f8;
        *(int *)((int)piVar27 + -8) = local_fc;
        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;
        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;
                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;
        FUN_00165ca0();
        local_b4 = (uint ***)0x0;
        ppppiVar17 = (int ****)0x0;
LAB_00160b99:
        ppppiVar24 = ppppiVar17;
        if ((int ****)local_b4 != ppppiVar17) {
          do {
            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {
              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];
              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;
              FUN_001e6db0();
            }
            ppppiVar24 = ppppiVar24 + 0x10;
          } while ((int ****)local_b4 != ppppiVar24);
        }
        *(int *)((int)piVar27 + -0xc) = local_100;
        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;
        FUN_001e6d70();
        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);
        ppppiVar24 = (int ****)local_d8[-1];
        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;
      }
      do {
        local_b4 = (uint ***)ppppiVar24;
        local_74 = (int ***)*local_b4;
        local_70 = local_b4[1];
        local_6c = local_b4[2];
        local_68 = local_b4[3];
        local_64 = local_b4[4];
        local_60 = local_b4[5];
        piVar27 = (int *)puVar28;
        if ((int ***)local_70 == (int ***)0x0) {
          local_d4 = lVar30;
          if ((uint ***)0xfffffffb < local_74) {
            ppuVar5 = (undefined **)(*local_64)[3];
            if (ppuVar5 != local_b8 + -0xc6e88) {
              *(uint ***)(puVar28 + -0x10) = local_64;
              *(undefined4 *)(puVar28 + -0x14) = 0x161066;
              lVar31 = (*(code *)ppuVar5)();
              lVar30 = local_d4;
              goto LAB_00160fa4;
            }
            lVar31 = *(longlong *)((int ***)local_64 + 9);
            goto LAB_00160dde;
          }
          local_bc = (uint ***)&local_74;
          *(uint ****)(puVar28 + -0x10) = local_bc;
                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */
          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;
          lVar30 = FUN_000ede20();
          lVar9 = local_cc;
          lVar10 = local_cc;
          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;
        }
        else {
          uVar25 = (int)local_70 - 1U >> 5 & 1;
          bVar20 = (byte)((int)local_70 - 1U);
          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));
LAB_00160fa4:
          if ((uint ***)0xfffffffb < local_74) {
LAB_00160dde:
            ppuVar11 = local_64;
            if (((uint)local_64[7] & 2) == 0) {
              ppiVar6 = (int **)*local_64;
              *(uint ***)(puVar28 + -0x10) = local_64;
              pcVar3 = (code *)ppiVar6[0xe];
              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;
              local_d4 = lVar30;
              (*pcVar3)();
              lVar30 = local_d4;
              if (((uint)ppuVar11[7] & 2) == 0) {
                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;
                *(undefined4 *)(puVar28 + -0xc) = 0x163;
                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;
                    /* WARNING: Subroutine does not return */
                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;
                FUN_00069d00();
              }
            }
          }
          local_bc = (uint ***)&local_74;
          *(uint ****)(puVar28 + -0x10) = local_bc;
          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;
          local_d4 = lVar30;
          lVar30 = FUN_000ede20();
          if (local_e0 == 0 && local_e4 == 0) {
            local_d4 = lVar30;
            lVar9 = local_cc;
            lVar10 = local_cc;
            if (lVar31 == 0) goto LAB_00160d28;
          }
          else {
LAB_00160ffd:
            lVar31 = CONCAT44(local_e0,local_e4);
            local_d4 = lVar30;
            if (local_f0 != 0) {
              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;
              *(undefined4 *)(puVar28 + -0xc) = 0xedf;
              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;
              FUN_00069d00();
            }
            *(uint *)(puVar28 + -0xc) = local_e0;
            *(uint *)(puVar28 + -0x10) = local_e4;
            *(undefined4 *)(puVar28 + -0x14) = 0x161027;
            local_70 = (uint **)FUN_0027b5b0();
            lVar9 = local_cc;
          }
          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);
          local_cc._0_4_ = (uint)lVar9;
          lVar30 = lVar31 + lVar9 + -1;
          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;
          local_c4._4_4_ =
               (uint)((ulonglong)lVar30 >> 0x20) &
               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));
          lVar30 = local_d4;
          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);
          if ((local_cc._4_4_ < local_c4._4_4_ ||
               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&
             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {
            local_cc = lVar9;
            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {
              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;
              *(undefined4 *)(puVar28 + -0xc) = 0xc0;
              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */
              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;
              FUN_00069d00();
            }
            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;
            *(int *)(puVar28 + -8) = param_10;
            *(int *)(puVar28 + -0xc) = param_1;
            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;
            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;
            FUN_0015b5e0();
            *(undefined4 *)(puVar28 + -0x14) = 0x44;
                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */
            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;
            pppiVar18 = (int ***)FUN_001e5200();
            pppiVar18[1] = (int **)0x0;
            pppiVar18[2] = (int **)0x0;
            pppiVar18[3] = (int **)local_58;
            pppiVar18[8] = (int **)0x0;
            pppiVar18[9] = (int **)0x0;
            pppiVar18[10] = (int **)0x0;
            pppiVar18[4] = (int **)0x0;
            pppiVar18[5] = (int **)0xffffffff;
            pppiVar18[6] = (int **)0xffffffff;
            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;
            *pppiVar18 = (int **)(local_dc + 2);
            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);
            *(undefined4 *)(puVar28 + -8) = 0;
            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;
            *(undefined4 **)(puVar28 + -0x10) = local_5c;
            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;
                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */
            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;
            FUN_000513a0();
            *(int ****)(puVar28 + -0x10) = pppiVar18;
            *(int *)(puVar28 + -0x14) = param_4;
                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */
            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;
            FUN_000f2600();
            local_a4 = (uint **)pppiVar18;
            if (*(char *)(param_3 + 0x1d4) != '\0') {
              puVar14 = *(undefined4 **)(param_3 + 0x1dc);
              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {
                *(uint ****)(puVar28 + -0xc) = &local_a4;
                *(undefined4 **)(puVar28 + -0x10) = puVar14;
                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;
                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */
                *(undefined4 *)(puVar28 + -0x18) = 0x161091;
                FUN_00163100();
              }
              else {
                *puVar14 = pppiVar18;
                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;
              }
            }
            piVar27 = (int *)(puVar28 + -4);
            lVar30 = local_d4;
            lVar9 = local_cc;
            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);
            if (local_5c != &local_54) {
              *(undefined4 **)(puVar28 + -0x14) = local_5c;
              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;
              FUN_001e6db0();
              piVar27 = (int *)(puVar28 + -4);
              lVar30 = local_d4;
              lVar9 = local_cc;
              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);
            }
          }
        }
LAB_00160d28:
        *(uint ****)((int)piVar27 + -0xc) = local_bc;
        *(int *)((int)piVar27 + -0x10) = param_4;
                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;
        local_d4 = lVar30;
        local_cc = lVar9;
        local_c4 = lVar10;
        FUN_000f5270();
        local_cc = local_d4 + local_c4;
        local_b4 = local_b4 + 0x10;
        puVar28 = (undefined1 *)piVar27;
        ppppiVar24 = (int ****)local_b4;
        lVar30 = local_d4;
      } while ((int ****)*local_d8 != (int ****)local_b4);
    }
LAB_00160c00:
    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);
    local_ec = (uint **)((int)local_ec + 1);
    local_d8 = local_d8 + 3;
    if (local_ec == (uint **)local_f4) {
      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||
         (*(int *)(param_4 + 0x50) != 8)) {
        *param_7 = local_cc;
      }
      else {
        local_cc = *param_7;
      }
      *(longlong *)(param_1 + 0x40) = local_cc;
      *(undefined4 *)(param_1 + 0x48) = *param_9;
      puVar14 = local_114;
      if (local_110 != local_114) {
        do {
          ppppiVar24 = (int ****)puVar14[1];
          ppppiVar17 = (int ****)*puVar14;
          if (ppppiVar24 != ppppiVar17) {
            do {
              local_b4 = (uint ***)ppppiVar17;
              if ((uint ***)local_b4[6] != local_b4 + 8) {
                local_d4 = lVar30;
                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];
                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;
                FUN_001e6db0();
                lVar30 = local_d4;
              }
              local_b4 = local_b4 + 0x10;
              ppppiVar17 = (int ****)local_b4;
            } while (ppppiVar24 != (int ****)local_b4);
            ppppiVar17 = (int ****)*puVar14;
          }
          if (ppppiVar17 != (int ****)0x0) {
            local_d4 = lVar30;
            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;
            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;
            FUN_001e6db0();
            lVar30 = local_d4;
          }
          puVar14 = puVar14 + 3;
        } while (puVar14 != local_110);
      }
      local_d4 = lVar30;
      *(undefined4 **)((int)piVar27 + -0x10) = local_114;
      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;
      FUN_001e6db0();
      return;
    }
  } while( true );
  iVar29 = iVar29 >> 1;
  if (iVar29 == 0) goto LAB_00160b72;
  goto LAB_001609e8;
}


CALL 0x000559e6
ADD EAX,0x22eb9b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x10c
MOV dword ptr [EBP + 0xffffff4c],EAX
MOV EAX,dword ptr [EBP + 0x18]
MOV ECX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + 0x1c]
MOV dword ptr [EBP + 0xffffff20],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [ECX + 0x34]
MOV dword ptr [EBP + 0xffffff24],EDX
MOV EAX,dword ptr [EAX + 0x30]
MOV dword ptr [EBP + 0xffffff50],ECX
SUB ECX,EAX
MOV EBX,ECX
SAR EBX,0x5
MOV dword ptr [EBP + 0xffffff38],EBX
JZ 0x00160889
ADD ECX,EAX
XOR EDX,EDX
MOV EBX,0x1
LEA ESI,[ESI]
MOV ESI,dword ptr [EAX + 0x1c]
TEST ESI,ESI
CMOVNZ EDX,EBX
ADD EAX,0x20
CMP ECX,EAX
JNZ 0x001604c0
TEST DL,DL
JZ 0x00160889
MOV EDI,dword ptr [EBP + 0xffffff38]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
LEA ESI,[EDI + EDI*0x2]
SHL ESI,0x2
PUSH ESI
CALL 0x001e5200
ADD ESP,0x10
MOV EDX,EDI
MOV dword ptr [EBP + 0xfffffef0],EAX
LEA ESI,[ESI]
MOV dword ptr [EAX],0x0
ADD EAX,0xc
MOV dword ptr [EAX + -0x8],0x0
MOV dword ptr [EAX + -0x4],0x0
SUB EDX,0x1
JNZ 0x00160500
MOV EAX,dword ptr [EBP + 0x30]
ADD ESI,dword ptr [EBP + 0xfffffef0]
MOV dword ptr [EBP + 0xfffffef4],ESI
MOV EDI,dword ptr [EAX]
MOV EAX,dword ptr [EBP + 0xffffff38]
MOV dword ptr [EBP + 0xffffff10],EAX
CMP EDI,dword ptr [EBP + 0x30]
JZ 0x001608d6
LEA EAX,[EBP + -0x38]
MOV dword ptr [EBP + 0xffffff30],EAX
LEA EAX,[EBP + 0xffffff60]
MOV dword ptr [EBP + 0xffffff48],EAX
LEA ESI,[ESI]
NOP
LEA ESI,[EDI + 0x8]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH ESI
CALL 0x000ede60
MOV EBX,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + 0xffffff50],EAX
MOV dword ptr [ESP],ESI
CALL 0x000edef0
MOV ESI,EAX
MOV EAX,dword ptr [EDI + 0x8]
MOV ECX,dword ptr [EBP + 0xffffff30]
ADD ESP,0x10
MOV dword ptr [EBP + -0x58],EAX
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [EBP + -0x54],EAX
MOV EAX,dword ptr [EDI + 0x10]
MOV dword ptr [EBP + -0x50],EAX
MOV EAX,dword ptr [EDI + 0x14]
MOV dword ptr [EBP + -0x4c],EAX
MOV EAX,dword ptr [EDI + 0x18]
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EDI + 0x1c]
MOV byte ptr [EBP + -0x38],0x0
MOV dword ptr [EBP + -0x44],EAX
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV dword ptr [EBP + -0x40],ECX
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [EBP + -0x3c],0x0
MOV dword ptr [EBP + -0x28],0x0
MOV dword ptr [EBP + -0x24],0x0
MOV dword ptr [EBP + -0x20],0x1
MOV dword ptr [EBP + -0x1c],0x0
TEST EAX,EAX
JZ 0x00160603
SUB ESP,0x8
ADD EAX,0x1c
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH -0x1
PUSH EAX
CALL 0x000669a0
ADD ESP,0x10
MOV ECX,dword ptr [EBP + 0xffffff50]
SUB ESP,0x4
MOV EAX,dword ptr [ECX]
PUSH ESI
PUSH ECX
PUSH dword ptr [EBP + 0xffffff48]
CALL dword ptr [EAX + 0x40]
PUSH dword ptr [EBP + 0xffffff60]
MOV EBX,dword ptr [EBP + 0xffffff4c]
CALL 0x00096ec0
ADD ESP,0x10
TEST AL,AL
JZ 0x001610e0
LEA EAX,[EBP + -0x80]
MOV EDX,dword ptr [EBP + 0xffffff64]
LEA EBX,[EBP + 0xffffff78]
PUSH 0x0
MOV dword ptr [EBP + 0xffffff2c],EAX
MOV dword ptr [EBP + 0xffffff78],EAX
MOV EAX,dword ptr [EBP + 0xffffff60]
ADD EDX,EAX
PUSH EDX
PUSH EAX
PUSH EBX
CALL 0x000513a0
POP EAX
LEA EAX,[EBP + -0x70]
POP EDX
PUSH EBX
PUSH EAX
MOV EBX,dword ptr [EBP + 0xffffff4c]
CALL 0x0009e270
MOV EBX,dword ptr [EBP + -0x70]
LEA ECX,[EBP + -0x68]
ADD ESP,0xc
MOV EAX,dword ptr [EBP + -0x40]
MOV EDX,dword ptr [EBP + -0x6c]
MOV dword ptr [EBP + 0xffffff28],EBX
CMP EBX,ECX
JZ 0x001612dd
MOV EBX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + 0xffffff1c],EBX
CMP EAX,dword ptr [EBP + 0xffffff30]
JZ 0x00161398
MOV EBX,dword ptr [EBP + -0x38]
MOV dword ptr [EBP + -0x3c],EDX
MOV EDX,dword ptr [EBP + 0xffffff1c]
MOV dword ptr [EBP + 0xffffff18],EBX
MOV EBX,dword ptr [EBP + 0xffffff28]
MOV dword ptr [EBP + -0x38],EDX
MOV dword ptr [EBP + -0x40],EBX
TEST EAX,EAX
JZ 0x001613a7
MOV EBX,dword ptr [EBP + 0xffffff18]
MOV dword ptr [EBP + -0x70],EAX
MOV dword ptr [EBP + -0x68],EBX
MOV dword ptr [EBP + -0x6c],0x0
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [EBP + -0x70]
CMP EAX,ECX
JZ 0x001606fb
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff78]
CMP EAX,dword ptr [EBP + 0xffffff2c]
JZ 0x0016071b
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff60]
LEA EDX,[EBP + 0xffffff68]
CMP EAX,EDX
JZ 0x0016073d
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
CMP dword ptr [EDI + 0x8],-0x4
JZ 0x0016120b
MOV EBX,dword ptr [EBP + 0xffffff50]
SUB ESP,0x8
MOV EAX,dword ptr [EBX]
PUSH ESI
PUSH EBX
CALL dword ptr [EAX + 0x3c]
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [EBX]
ADD ESP,0x8
PUSH ESI
MOV dword ptr [EBP + -0x24],EDX
PUSH EBX
CALL dword ptr [EAX + 0x5c]
ADD ESP,0x10
MOV dword ptr [EBP + -0x20],EAX
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV dword ptr [EBP + -0x1c],EDX
MOV EAX,dword ptr [EAX + 0x1c]
TEST EAX,EAX
JZ 0x00160794
SUB ESP,0x8
ADD EAX,0x1c
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH -0x1
PUSH EAX
CALL 0x000679d0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff50]
SUB ESP,0x8
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [EBP + 0x8]
CALL 0x0015b690
ADD ESP,0x10
TEST AL,AL
JZ 0x001610b0
MOV EAX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x30]
CMP dword ptr [ECX + 0x34],EAX
JZ 0x0016123e
MOV EDX,dword ptr [EBP + 0xffffff38]
TEST EDX,EDX
JZ 0x001610b0
XOR ESI,ESI
JMP 0x00160811
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH ECX
PUSH EDX
CALL 0x00029b10
ADD ESP,0x10
TEST EAX,EAX
SETZ AL
TEST AL,AL
JNZ 0x00160841
ADD ESI,0x1
CMP ESI,dword ptr [EBP + 0xffffff38]
JZ 0x001610b0
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x30]
MOV EDX,ESI
SHL EDX,0x5
ADD EAX,EDX
MOV EDX,dword ptr [EBP + -0x40]
CMP byte ptr [EAX + 0x18],0x0
MOV ECX,dword ptr [EAX]
JZ 0x001607e0
SUB ESP,0x4
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH 0x0
PUSH EDX
PUSH ECX
CALL 0x00029980
ADD ESP,0x10
TEST EAX,EAX
SETZ AL
TEST AL,AL
JZ 0x001607fc
CMP dword ptr [EBP + 0xffffff38],ESI
JBE 0x001610b0
MOV ECX,dword ptr [EBP + 0xfffffef0]
MOV EDX,ECX
CMP ESI,dword ptr [EBP + 0xffffff10]
JNC 0x00160865
LEA EAX,[ESI + ESI*0x2]
LEA EAX,[ECX + EAX*0x4]
MOV EDX,EAX
MOV ESI,EDX
MOV EBX,dword ptr [EDX + 0x4]
CMP EBX,dword ptr [EDX + 0x8]
JNZ 0x00161250
SUB ESP,0x4
LEA EAX,[EBP + -0x58]
PUSH EAX
PUSH EBX
PUSH EDX
CALL 0x00163d60
ADD ESP,0x10
JMP 0x001612ad
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH 0xc
CALL 0x001e5200
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff10],0x1
MOV dword ptr [EAX],0x0
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EBP + 0xfffffef0],EAX
ADD EAX,0xc
MOV dword ptr [EBP + 0xfffffef4],EAX
MOV EAX,dword ptr [EBP + 0x30]
MOV EDI,dword ptr [EAX]
CMP EDI,EAX
JNZ 0x00160542
MOV EAX,dword ptr [EBP + 0x20]
MOV ECX,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + 0xffffff18],0x0
MOV ESI,dword ptr [EBP + 0xffffff20]
MOV EDI,dword ptr [EBP + 0xffffff24]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + 0xffffff38],EAX
MOV EAX,dword ptr [EBP + 0xfffffef0]
MOV dword ptr [EBP + 0xffffff3c],EDX
MOV EDX,EDI
ADD EAX,0x4
MOV dword ptr [EBP + 0xffffff2c],EAX
LEA EAX,[ECX + 0xffff4bfc]
MOV dword ptr [EBP + 0xffffff28],EAX
MOV EAX,ESI
ADD EAX,-0x1
ADC EDX,-0x1
MOV dword ptr [EBP + 0xffffff50],EAX
AND EAX,ESI
MOV dword ptr [EBP + 0xffffff54],EDX
MOV EDX,dword ptr [EBP + 0xffffff54]
AND EDX,EDI
OR EDX,EAX
LEA EAX,[ECX + 0xfff148c3]
MOV dword ptr [EBP + 0xffffff14],EDX
MOV dword ptr [EBP + 0xffffff1c],EAX
MOV dword ptr [EBP + 0xfffffee8],EAX
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBP + 0xffffff2c]
MOV EBX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + -0x4]
MOV dword ptr [EBP + 0xffffff30],EBX
CMP EBX,EDX
JZ 0x00160c00
MOV EAX,dword ptr [EBP + 0x14]
TEST EAX,EAX
JZ 0x001614f8
MOV EBX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP + 0xffffff18]
SHL EAX,0x5
ADD EAX,dword ptr [EBX + 0x30]
MOV ECX,dword ptr [EBX + 0x20]
MOV EAX,dword ptr [EAX + 0x1c]
MOV EBX,EAX
OR EBX,ECX
JZ 0x00160d08
MOV ESI,dword ptr [EBP + 0xffffff30]
MOV dword ptr [EBP + 0xffffff08],ECX
MOV dword ptr [EBP + 0xffffff0c],EAX
SUB ESI,EDX
CMP ESI,0x7fffffc0
JG 0x001610a0
TEST ESI,ESI
JLE 0x00161387
SAR ESI,0x6
MOV EAX,dword ptr [EBP + 0xffffff1c]
MOV EDI,EDX
MOV dword ptr [EBP + 0xffffff04],EAX
JMP 0x001609e8
SAR ESI,0x1
JZ 0x00160b70
MOV EAX,ESI
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff1c]
MOV EBX,dword ptr [EBP + 0xffffff4c]
SHL EAX,0x6
PUSH EAX
MOV dword ptr [EBP + 0xffffff50],EAX
CALL 0x001e51a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x001609e0
MOV ECX,dword ptr [EBP + 0xffffff50]
MOV EDX,EDI
MOV EDI,EAX
LEA EBX,[EDX + 0x20]
LEA EAX,[EAX + ECX*0x1]
MOV dword ptr [EBP + 0xffffff48],ECX
MOV dword ptr [EBP + 0xffffff50],EAX
MOV EAX,dword ptr [EDX]
MOV dword ptr [EBP + 0xfffffefc],EBX
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [EDX + 0x4]
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [EDX + 0x8]
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [EDX + 0xc]
MOV dword ptr [EDI + 0xc],EAX
MOV EAX,dword ptr [EDX + 0x10]
MOV dword ptr [EDI + 0x10],EAX
MOV EAX,dword ptr [EDX + 0x14]
MOV dword ptr [EDI + 0x14],EAX
LEA EAX,[EDI + 0x20]
MOV dword ptr [EDI + 0x18],EAX
MOV ECX,dword ptr [EDX + 0x18]
CMP ECX,EBX
JZ 0x001613e3
MOV dword ptr [EDI + 0x18],ECX
MOV ECX,dword ptr [EDX + 0x20]
MOV dword ptr [EDI + 0x20],ECX
MOV ECX,dword ptr [EDX + 0x1c]
MOV EBX,dword ptr [EDX + 0x34]
MOV dword ptr [EDI + 0x1c],ECX
MOV ECX,dword ptr [EBP + 0xfffffefc]
MOV dword ptr [EDX + 0x1c],0x0
MOV dword ptr [EDX + 0x18],ECX
MOV ECX,dword ptr [EDX + 0x30]
MOV byte ptr [EDX + 0x20],0x0
MOV dword ptr [EDI + 0x34],EBX
MOV EBX,dword ptr [EDX + 0x3c]
MOV dword ptr [EDI + 0x30],ECX
MOV ECX,dword ptr [EDX + 0x38]
MOV dword ptr [EDI + 0x3c],EBX
MOV dword ptr [EDI + 0x38],ECX
LEA ECX,[EDI + 0x40]
CMP dword ptr [EBP + 0xffffff50],ECX
JZ 0x0016148a
MOV EBX,dword ptr [EBP + 0xffffff48]
MOV dword ptr [EBP + 0xfffffeec],ESI
LEA ECX,[EBX + -0x80]
SHR ECX,0x6
MOV dword ptr [EBP + 0xffffff00],ECX
LEA ECX,[EBX + -0x20]
MOV dword ptr [EBP + 0xfffffef8],ECX
ADD ECX,EDI
MOV dword ptr [EBP + 0xffffff48],ECX
JMP 0x00160b21
MOV dword ptr [EAX + 0x38],EBX
MOV EBX,dword ptr [EAX]
MOV dword ptr [EAX + 0x40],EBX
MOV EBX,dword ptr [EAX + -0x4]
MOV ESI,dword ptr [EAX + 0x14]
MOV dword ptr [EAX + -0x8],EAX
MOV dword ptr [EAX + -0x4],0x0
MOV dword ptr [EAX + 0x3c],EBX
MOV EBX,dword ptr [EAX + 0x10]
MOV dword ptr [EAX + 0x54],ESI
MOV ESI,dword ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x50],EBX
MOV EBX,dword ptr [EAX + 0x18]
MOV byte ptr [EAX],0x0
MOV dword ptr [EAX + 0x58],EBX
MOV dword ptr [EAX + 0x5c],ESI
MOV EAX,ECX
CMP ECX,dword ptr [EBP + 0xffffff48]
JZ 0x00161100
MOV ECX,dword ptr [EAX + -0x20]
MOV EBX,dword ptr [EAX + -0x8]
MOV dword ptr [EAX + 0x20],ECX
MOV ECX,dword ptr [EAX + -0x1c]
MOV dword ptr [EAX + 0x24],ECX
MOV ECX,dword ptr [EAX + -0x18]
MOV dword ptr [EAX + 0x28],ECX
MOV ECX,dword ptr [EAX + -0x14]
MOV dword ptr [EAX + 0x2c],ECX
MOV ECX,dword ptr [EAX + -0x10]
MOV dword ptr [EAX + 0x30],ECX
MOV ECX,dword ptr [EAX + -0xc]
MOV dword ptr [EAX + 0x34],ECX
LEA ECX,[EAX + 0x40]
MOV dword ptr [EAX + 0x38],ECX
CMP EAX,EBX
JNZ 0x00160ae0
MOV EBX,dword ptr [EAX]
MOV dword ptr [EAX + 0x40],EBX
MOV EBX,dword ptr [EAX + 0x4]
MOV dword ptr [ECX + 0x4],EBX
MOV EBX,dword ptr [EAX + 0x8]
MOV dword ptr [ECX + 0x8],EBX
MOV EBX,dword ptr [EAX + 0xc]
MOV dword ptr [ECX + 0xc],EBX
JMP 0x00160ae8
MOV EDX,EDI
PUSH dword ptr [EBP + 0xffffff0c]
PUSH dword ptr [EBP + 0xffffff08]
PUSH dword ptr [EBP + 0xffffff30]
PUSH EDX
CALL 0x00165ca0
MOV dword ptr [EBP + 0xffffff50],0x0
ADD ESP,0x10
XOR EDI,EDI
MOV ESI,EDI
CMP dword ptr [EBP + 0xffffff50],EDI
JZ 0x00160bcf
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESI + 0x18]
LEA EDX,[ESI + 0x20]
CMP EAX,EDX
JZ 0x00160bc4
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
ADD ESI,0x40
CMP dword ptr [EBP + 0xffffff50],ESI
JNZ 0x00160ba8
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff04]
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EDI
CALL 0x001e6d70
MOV EAX,dword ptr [EBP + 0xffffff2c]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + -0x4]
CMP EDX,dword ptr [EAX]
JNZ 0x00160d08
LEA ESI,[ESI]
NOP
ADD dword ptr [EBP + 0xffffff18],0x1
MOV EAX,dword ptr [EBP + 0xffffff18]
ADD dword ptr [EBP + 0xffffff2c],0xc
CMP EAX,dword ptr [EBP + 0xffffff10]
JNZ 0x00160960
MOV ECX,dword ptr [EBP + 0x14]
TEST ECX,ECX
JZ 0x00160c34
MOV EAX,dword ptr [EBP + 0x14]
TEST byte ptr [EAX + 0x55],0x4
JNZ 0x00161411
MOV ECX,dword ptr [EBP + 0x20]
MOV EAX,dword ptr [EBP + 0xffffff38]
MOV EDX,dword ptr [EBP + 0xffffff3c]
MOV dword ptr [ECX],EAX
MOV dword ptr [ECX + 0x4],EDX
MOV ECX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP + 0xffffff38]
MOV EDX,dword ptr [EBP + 0xffffff3c]
MOV dword ptr [ECX + 0x40],EAX
MOV EAX,dword ptr [EBP + 0x28]
MOV dword ptr [ECX + 0x44],EDX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ECX + 0x48],EAX
MOV EAX,dword ptr [EBP + 0xfffffef0]
MOV EDI,EAX
CMP dword ptr [EBP + 0xfffffef4],EAX
JZ 0x00160ce6
LEA ESI,[ESI]
MOV ESI,dword ptr [EDI + 0x4]
MOV EAX,dword ptr [EDI]
CMP ESI,EAX
JZ 0x00160cc5
MOV dword ptr [EBP + 0xffffff50],EAX
LEA ESI,[ESI]
NOP
MOV ECX,dword ptr [EBP + 0xffffff50]
MOV EAX,dword ptr [ECX + 0x18]
LEA EDX,[ECX + 0x20]
CMP EAX,EDX
JZ 0x00160cb2
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
ADD dword ptr [EBP + 0xffffff50],0x40
MOV EAX,dword ptr [EBP + 0xffffff50]
CMP ESI,EAX
JNZ 0x00160c90
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x00160cdb
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
ADD EDI,0xc
CMP EDI,dword ptr [EBP + 0xfffffef4]
JNZ 0x00160c78
SUB ESP,0xc
PUSH dword ptr [EBP + 0xfffffef0]
MOV EBX,dword ptr [EBP + 0xffffff4c]
CALL 0x001e6db0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [EBP + 0xffffff50],EDX
JMP 0x00160d81
MOV EAX,dword ptr [EBP + 0xffffff38]
MOV EDX,dword ptr [EBP + 0xffffff3c]
MOV dword ptr [EBP + 0xffffff40],EAX
MOV dword ptr [EBP + 0xffffff44],EDX
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff48]
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH dword ptr [EBP + 0x14]
CALL 0x000f5270
MOV EBX,dword ptr [EBP + 0xffffff2c]
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff30]
MOV EDX,dword ptr [EBP + 0xffffff34]
ADD EAX,dword ptr [EBP + 0xffffff40]
ADC EDX,dword ptr [EBP + 0xffffff44]
MOV dword ptr [EBP + 0xffffff38],EAX
ADD dword ptr [EBP + 0xffffff50],0x40
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV dword ptr [EBP + 0xffffff3c],EDX
CMP dword ptr [EBX],EAX
JZ 0x00160c00
MOV EDI,dword ptr [EBP + 0xffffff50]
MOV EDX,dword ptr [EDI]
MOV dword ptr [EBP + -0x70],EDX
MOV ECX,dword ptr [EDI + 0x4]
MOV dword ptr [EBP + -0x6c],ECX
MOV EAX,dword ptr [EDI + 0x8]
MOV dword ptr [EBP + -0x68],EAX
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [EBP + -0x64],EAX
MOV EAX,dword ptr [EDI + 0x10]
MOV dword ptr [EBP + -0x60],EAX
MOV EBX,dword ptr [EDI + 0x14]
MOV dword ptr [EBP + -0x5c],EBX
TEST ECX,ECX
JNZ 0x00160f90
CMP EDX,-0x4
JC 0x00160fc0
MOV ECX,dword ptr [EAX]
MOV ESI,dword ptr [EBP + 0xffffff4c]
MOV EBX,EAX
MOV EDX,EAX
MOV ECX,dword ptr [ECX + 0xc]
LEA ESI,[ESI + 0xffce45e0]
CMP ECX,ESI
JNZ 0x00161060
MOV ESI,dword ptr [EAX + 0x24]
MOV EDI,dword ptr [EAX + 0x28]
TEST byte ptr [EBX + 0x1c],0x2
JNZ 0x00160dfa
MOV EAX,dword ptr [EBX]
SUB ESP,0xc
PUSH EDX
CALL dword ptr [EAX + 0x38]
ADD ESP,0x10
TEST byte ptr [EBX + 0x1c],0x2
JZ 0x001614d7
LEA EAX,[EBP + -0x70]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
MOV dword ptr [EBP + 0xffffff48],EAX
CALL 0x000ede20
MOV EBX,dword ptr [EBP + 0xffffff24]
MOV ECX,dword ptr [EBP + 0xffffff20]
MOV dword ptr [EBP + 0xffffff34],EDX
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff30],EAX
MOV EDX,EBX
OR EDX,ECX
JNZ 0x00160ffd
MOV EDX,EDI
OR EDX,ESI
JZ 0x00160d10
MOV EAX,dword ptr [EBP + 0xffffff38]
MOV EDX,dword ptr [EBP + 0xffffff3c]
MOV EBX,dword ptr [EBP + 0xffffff3c]
ADD EAX,-0x1
ADC EDX,-0x1
ADD EAX,ESI
ADC EDX,EDI
NEG ESI
MOV ECX,EAX
ADC EDI,0x0
MOV EAX,EDX
AND ECX,ESI
MOV ESI,EBX
NEG EDI
MOV dword ptr [EBP + 0xffffff40],ECX
MOV ECX,dword ptr [EBP + 0xffffff38]
AND EAX,EDI
MOV dword ptr [EBP + 0xffffff44],EAX
MOV EAX,dword ptr [EBP + 0xffffff40]
MOV EDX,dword ptr [EBP + 0xffffff44]
CMP ECX,EAX
SBB ESI,EDX
JNC 0x00160d28
MOV ESI,dword ptr [EBP + 0x2c]
MOV ESI,dword ptr [ESI + 0x4]
TEST ESI,ESI
JZ 0x00160d28
SUB EAX,ECX
SBB EDX,EBX
TEST EDX,EDX
JNZ 0x00161495
LEA EDX,[EBP + -0x58]
PUSH EAX
PUSH dword ptr [EBP + 0x2c]
PUSH dword ptr [EBP + 0x8]
PUSH EDX
CALL 0x0015b5e0
MOV EDI,dword ptr [EBP + 0xffffff4c]
PUSH 0x44
MOV EBX,EDI
CALL 0x001e5200
MOV EDX,dword ptr [EBP + -0x54]
MOV dword ptr [EAX + 0x4],0x0
MOV ESI,EAX
ADD ESP,0x10
MOV dword ptr [EAX + 0x8],0x0
LEA ECX,[ESI + 0x2c]
MOV dword ptr [EAX + 0xc],EDX
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x24],0x0
MOV dword ptr [EAX + 0x28],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOVZX EAX,byte ptr [EAX + 0x1c]
AND EAX,0xffffffe0
OR EAX,0xa
MOV byte ptr [ESI + 0x1c],AL
MOV EAX,dword ptr [EBP + 0xffffff28]
ADD EAX,0x8
MOV dword ptr [ESI],EAX
LEA EAX,[ESI + 0x34]
MOV dword ptr [ESI + 0x2c],EAX
MOV EAX,dword ptr [EBP + -0x58]
PUSH 0x0
ADD EDX,EAX
PUSH EDX
PUSH EAX
PUSH ECX
CALL 0x000513a0
POP EAX
POP EDX
PUSH ESI
PUSH dword ptr [EBP + 0x14]
CALL 0x000f2600
MOV EAX,dword ptr [EBP + 0x10]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff60],ESI
CMP byte ptr [EAX + 0x1d4],0x0
JNZ 0x00161038
MOV EAX,dword ptr [EBP + -0x58]
LEA EDX,[EBP + -0x50]
CMP EAX,EDX
JZ 0x00160d28
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
JMP 0x00160d28
SUB ECX,0x1
MOV EDI,ECX
SHR EDI,0x5
AND EDI,0x1
MOV ESI,EDI
SHL EDI,CL
XOR ESI,0x1
SHL ESI,CL
CMP dword ptr [EBP + -0x70],-0x4
JC 0x00160dfa
MOV EBX,dword ptr [EBP + -0x60]
MOV EDX,EBX
JMP 0x00160dde
LEA EAX,[EBP + -0x70]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
MOV dword ptr [EBP + 0xffffff48],EAX
CALL 0x000ede20
MOV EDI,dword ptr [EBP + 0xffffff24]
MOV ESI,dword ptr [EBP + 0xffffff20]
MOV dword ptr [EBP + 0xffffff34],EDX
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff30],EAX
MOV EDX,EDI
OR EDX,ESI
JZ 0x00160d10
MOV EDI,dword ptr [EBP + 0xffffff14]
TEST EDI,EDI
JNZ 0x001614b6
MOV ESI,dword ptr [EBP + 0xffffff20]
MOV EDI,dword ptr [EBP + 0xffffff24]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EDI
PUSH ESI
CALL 0x0027b5b0
ADD ESP,0x10
MOV dword ptr [EBP + -0x6c],EAX
JMP 0x00160e41
MOV EBX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX + 0x1dc]
CMP EAX,dword ptr [EBX + 0x1e0]
JZ 0x00161078
MOV dword ptr [EAX],ESI
ADD EAX,0x4
MOV dword ptr [EBX + 0x1dc],EAX
JMP 0x00160f66
SUB ESP,0xc
PUSH EAX
CALL ECX
MOV ESI,EAX
MOV EDI,EDX
ADD ESP,0x10
JMP 0x00160fa4
SUB ESP,0x4
LEA EDX,[EBP + 0xffffff60]
PUSH EDX
PUSH EAX
MOV EAX,dword ptr [EBP + 0x10]
ADD EAX,0x1d8
PUSH EAX
CALL 0x00163100
ADD ESP,0x10
JMP 0x00160f66
MOV ESI,0x1ffffff
JMP 0x001609ce
MOV EDI,dword ptr [EDI]
MOV EAX,dword ptr [EBP + -0x40]
CMP EAX,dword ptr [EBP + 0xffffff30]
JZ 0x001610cf
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
CMP EDI,dword ptr [EBP + 0x30]
JNZ 0x00160560
JMP 0x001608d6
SUB ESP,0x8
LEA EAX,[EBP + -0x40]
PUSH dword ptr [EBP + 0xffffff48]
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
CALL 0x001ee9c0
ADD ESP,0x10
JMP 0x0016071b
MOV EAX,dword ptr [EBP + 0xffffff00]
MOV ESI,dword ptr [EBP + 0xfffffeec]
ADD EAX,0x1
SHL EAX,0x6
ADD EAX,EDI
MOV dword ptr [EBP + 0xffffff48],EAX
MOV EAX,dword ptr [EBP + 0xfffffef8]
ADD EAX,EDI
MOV EBX,dword ptr [EBP + 0xffffff48]
MOV ECX,dword ptr [EBX]
MOV dword ptr [EDX],ECX
MOV ECX,dword ptr [EBX + 0x4]
MOV dword ptr [EDX + 0x4],ECX
MOV ECX,dword ptr [EBX + 0x8]
MOV dword ptr [EDX + 0x8],ECX
MOV ECX,dword ptr [EBX + 0xc]
MOV dword ptr [EDX + 0xc],ECX
MOV ECX,dword ptr [EBX + 0x10]
MOV dword ptr [EDX + 0x10],ECX
MOV ECX,dword ptr [EBX + 0x14]
MOV dword ptr [EDX + 0x14],ECX
MOV ECX,dword ptr [EDX + 0x18]
MOV dword ptr [EBP + 0xffffff00],ECX
MOV ECX,EBX
MOV EBX,dword ptr [EBX + 0x18]
MOV dword ptr [EBP + 0xfffffef8],EBX
CMP EAX,EBX
JZ 0x0016131f
MOV ECX,dword ptr [EBP + 0xffffff00]
CMP dword ptr [EBP + 0xfffffefc],ECX
JZ 0x001613b4
MOV EBX,dword ptr [EDX + 0x20]
MOV dword ptr [EBP + 0xfffffefc],EBX
MOV EBX,dword ptr [EBP + 0xfffffef8]
MOV dword ptr [EDX + 0x18],EBX
MOV EBX,dword ptr [EBP + 0xffffff48]
MOV ECX,dword ptr [EBX + 0x1c]
MOV dword ptr [EDX + 0x1c],ECX
MOV ECX,dword ptr [EBX + 0x20]
MOV dword ptr [EDX + 0x20],ECX
MOV ECX,dword ptr [EBP + 0xffffff00]
TEST ECX,ECX
JZ 0x001613cf
MOV EAX,EBX
MOV dword ptr [EBX + 0x18],ECX
MOV EBX,dword ptr [EBP + 0xfffffefc]
MOV dword ptr [EAX + 0x20],EBX
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV EBX,dword ptr [EBP + 0xffffff00]
SUB ESP,0x8
MOV dword ptr [EAX + 0x1c],0x0
MOV byte ptr [EBX],0x0
MOV ECX,dword ptr [EAX + 0x30]
MOV EBX,dword ptr [EAX + 0x34]
MOV dword ptr [EDX + 0x30],ECX
MOV dword ptr [EDX + 0x34],EBX
MOV EBX,dword ptr [EAX + 0x3c]
MOV ECX,dword ptr [EAX + 0x38]
MOV dword ptr [EDX + 0x3c],EBX
MOV dword ptr [EDX + 0x38],ECX
PUSH dword ptr [EBP + 0xffffff0c]
PUSH dword ptr [EBP + 0xffffff08]
PUSH ESI
PUSH EDI
PUSH dword ptr [EBP + 0xffffff30]
PUSH EDX
CALL 0x00167d90
ADD ESP,0x20
JMP 0x00160b99
MOV ECX,dword ptr [EDI + 0x18]
MOV EBX,dword ptr [EBP + 0xffffff4c]
MOV EAX,dword ptr [ECX + 0xc]
MOV EDX,dword ptr [ECX + 0x10]
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [ECX]
MOV dword ptr [EBP + -0x24],EDX
LEA EDX,[EBX + 0xffce45e0]
MOV EAX,dword ptr [EAX + 0xc]
CMP EAX,EDX
JNZ 0x00161406
MOV EAX,dword ptr [ECX + 0x24]
MOV EDX,dword ptr [ECX + 0x28]
JMP 0x0016076a
MOV ESI,dword ptr [EBP + 0xfffffef0]
MOV EBX,dword ptr [ESI + 0x4]
CMP EBX,dword ptr [ESI + 0x8]
JZ 0x00161472
MOV EAX,dword ptr [EBP + -0x58]
LEA EDX,[EBX + 0x18]
MOV dword ptr [EBX],EAX
MOV EAX,dword ptr [EBP + -0x54]
MOV dword ptr [EBX + 0x4],EAX
MOV EAX,dword ptr [EBP + -0x50]
MOV dword ptr [EBX + 0x8],EAX
MOV EAX,dword ptr [EBP + -0x4c]
MOV dword ptr [EBX + 0xc],EAX
MOV EAX,dword ptr [EBP + -0x48]
MOV dword ptr [EBX + 0x10],EAX
MOV EAX,dword ptr [EBP + -0x44]
MOV dword ptr [EBX + 0x14],EAX
LEA EAX,[EBX + 0x20]
MOV dword ptr [EBX + 0x18],EAX
MOV EAX,dword ptr [EBP + -0x40]
MOV ECX,dword ptr [EBP + -0x3c]
PUSH 0x0
ADD ECX,EAX
PUSH ECX
PUSH EAX
PUSH EDX
CALL 0x000513a0
MOV EAX,dword ptr [EBP + -0x28]
MOV EDX,dword ptr [EBP + -0x24]
ADD ESP,0x10
MOV dword ptr [EBX + 0x30],EAX
MOV dword ptr [EBX + 0x34],EDX
MOV EAX,dword ptr [EBP + -0x20]
MOV EDX,dword ptr [EBP + -0x1c]
MOV dword ptr [EBX + 0x38],EAX
MOV dword ptr [EBX + 0x3c],EDX
ADD dword ptr [ESI + 0x4],0x40
MOV EAX,dword ptr [EBP + 0x30]
SUB ESP,0xc
MOV ESI,dword ptr [EDI]
MOV EBX,dword ptr [EBP + 0xffffff4c]
SUB dword ptr [EAX + 0x8],0x1
PUSH EDI
CALL 0x001e9f90
MOV EBX,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [ESP],EDI
MOV EDI,ESI
CALL 0x001e6db0
ADD ESP,0x10
JMP 0x001610b2
TEST EDX,EDX
JZ 0x00161310
CMP EDX,0x1
JZ 0x00161457
SUB ESP,0x4
MOV EBX,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + 0xffffff28],ECX
PUSH EDX
PUSH ECX
PUSH EAX
CALL 0x000295c0
MOV EDX,dword ptr [EBP + -0x6c]
MOV EAX,dword ptr [EBP + -0x40]
ADD ESP,0x10
MOV ECX,dword ptr [EBP + 0xffffff28]
MOV dword ptr [EBP + -0x3c],EDX
MOV byte ptr [EAX + EDX*0x1],0x0
MOV EAX,dword ptr [EBP + -0x70]
JMP 0x001606d8
MOV ECX,dword ptr [ECX + 0x1c]
TEST ECX,ECX
JZ 0x00161366
CMP ECX,0x1
JZ 0x00161434
SUB ESP,0x4
MOV EBX,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + 0xfffffefc],EDX
PUSH ECX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff00]
CALL 0x000295c0
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV EDX,dword ptr [EBP + 0xfffffefc]
ADD ESP,0x10
MOV ECX,dword ptr [EAX + 0x1c]
MOV EAX,dword ptr [EDX + 0x18]
MOV dword ptr [EBP + 0xffffff00],EAX
MOV EAX,dword ptr [EBP + 0xffffff00]
MOV dword ptr [EDX + 0x1c],ECX
MOV byte ptr [EAX + ECX*0x1],0x0
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [EBP + 0xffffff00],EAX
JMP 0x001611b8
MOV EAX,dword ptr [EBP + 0xfffffee8]
MOV dword ptr [EBP + 0xffffff04],EAX
JMP 0x00160b72
MOV EAX,dword ptr [EBP + 0xffffff28]
MOV dword ptr [EBP + -0x3c],EDX
MOV dword ptr [EBP + -0x38],EBX
MOV dword ptr [EBP + -0x40],EAX
MOV dword ptr [EBP + -0x70],ECX
LEA ECX,[EBP + -0x68]
MOV EAX,ECX
JMP 0x001606d8
MOV EBX,dword ptr [EBP + 0xfffffef8]
MOV dword ptr [EDX + 0x18],EBX
MOV EBX,dword ptr [EBP + 0xffffff48]
MOV ECX,dword ptr [EBX + 0x1c]
MOV dword ptr [EDX + 0x1c],ECX
MOV ECX,dword ptr [EBX + 0x20]
MOV dword ptr [EDX + 0x20],ECX
MOV ECX,dword ptr [EBP + 0xffffff48]
MOV dword ptr [EBP + 0xffffff00],EAX
MOV dword ptr [ECX + 0x18],EAX
JMP 0x001611b8
MOV ECX,dword ptr [EDX + 0x20]
MOV EBX,dword ptr [EBP + 0xfffffefc]
MOV dword ptr [EDI + 0x20],ECX
MOV ECX,dword ptr [EBX + 0x4]
MOV dword ptr [EAX + 0x4],ECX
MOV ECX,dword ptr [EBX + 0x8]
MOV dword ptr [EAX + 0x8],ECX
MOV ECX,dword ptr [EBX + 0xc]
MOV dword ptr [EAX + 0xc],ECX
JMP 0x00160a6d
SUB ESP,0xc
PUSH ECX
CALL EAX
JMP 0x00160767
CMP dword ptr [EAX + 0x50],0x8
JNZ 0x00160c34
MOV EAX,dword ptr [EBP + 0x20]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + 0xffffff3c],EDX
MOV dword ptr [EBP + 0xffffff38],EAX
JMP 0x00160c48
MOV ECX,dword ptr [EBP + 0xffffff48]
MOV EBX,dword ptr [EBP + 0xffffff00]
MOVZX EAX,byte ptr [ECX + 0x20]
MOV byte ptr [EBX],AL
MOV EAX,dword ptr [EDX + 0x18]
MOV ECX,dword ptr [ECX + 0x1c]
MOV dword ptr [EBP + 0xffffff00],EAX
JMP 0x00161366
MOVZX EDX,byte ptr [EBP + -0x68]
MOV byte ptr [EAX],DL
MOV EDX,dword ptr [EBP + -0x6c]
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x3c],EDX
MOV byte ptr [EAX + EDX*0x1],0x0
MOV EAX,dword ptr [EBP + -0x70]
JMP 0x001606d8
SUB ESP,0x4
LEA EAX,[EBP + -0x58]
PUSH EAX
PUSH EBX
PUSH dword ptr [EBP + 0xfffffef0]
CALL 0x00163d60
JMP 0x00160881
MOV dword ptr [EBP + 0xffffff48],EDI
JMP 0x00161122
MOV EBX,dword ptr [EBP + 0xffffff4c]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff08ba0]
PUSH EAX
LEA EAX,[EBX + 0xffef8419]
PUSH 0xc0
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + 0xffffff4c]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff08a48]
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0xedf
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + 0xffffff4c]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff08a58]
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0x163
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + 0xffffff4c]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff08a6c]
PUSH EAX
LEA EAX,[EBX + 0xfff08093]
PUSH 0x6ed
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_00160460(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)\n\n{\n  int ****ppppiVar1;\n  int ****ppppiVar2;\n  code *pcVar3;\n  int ***pppiVar4;\n  undefined **ppuVar5;\n  int **ppiVar6;\n  int *piVar7;\n  bool bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  uint **ppuVar11;\n  char cVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  int ****ppppiVar17;\n  int ***pppiVar18;\n  int ****ppppiVar19;\n  byte bVar20;\n  int iVar21;\n  uint ***pppuVar22;\n  uint uVar23;\n  int ****ppppiVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  int *piVar27;\n  undefined1 *puVar28;\n  int iVar29;\n  longlong lVar30;\n  longlong lVar31;\n  int local_11c;\n  int local_118;\n  undefined4 *local_114;\n  undefined4 *local_110;\n  uint ***local_10c;\n  uint ***local_108;\n  uint ***local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint **local_ec;\n  uint **local_e8;\n  uint local_e4;\n  uint local_e0;\n  int ***local_dc;\n  undefined4 *local_d8;\n  undefined8 local_d4;\n  undefined8 local_cc;\n  undefined8 local_c4;\n  uint ***local_bc;\n  undefined **local_b8;\n  uint ***local_b4;\n  uint local_b0;\n  uint **local_a4;\n  int local_a0;\n  uint *local_9c [4];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  int ***local_74;\n  uint **local_70;\n  uint **local_6c;\n  uint **local_68;\n  uint **local_64;\n  uint **local_60;\n  undefined4 *local_5c;\n  uint *local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int ***local_44;\n  uint **local_40;\n  uint **local_3c [4];\n  undefined8 local_2c;\n  undefined8 local_24;\n  \n  local_b8 = &__DT_PLTGOT;\n  local_e4 = param_5;\n  local_b4 = *(uint ****)(param_1 + 0x34);\n  local_e0 = param_6;\n  iVar13 = *(int *)(param_1 + 0x30);\n  uVar25 = (int)local_b4 - iVar13 >> 5;\n  local_cc._0_4_ = uVar25;\n  if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (undefined4 *)FUN_001e5200(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  puVar14 = (undefined4 *)*param_11;\njoined_r0x001608d0:\n  piVar27 = &local_11c;\n  if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }\n  local_ec = (uint **)0x0;\n  local_cc = *param_7;\n  local_d8 = local_114 + 1;\n  local_dc = (int ***)(local_b8 + -0x2d01);\n  local_b4 = (uint ***)(local_e4 - 1);\n  local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);\n  local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;\n  local_11c = (int)local_b8 + -0xeb73d;\n  local_e8 = (uint **)local_11c;\n  do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );\n  iVar29 = iVar29 >> 1;\n  if (iVar29 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}\n\n" comment (function_definition "void FUN_00160460(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)\n\n{\n  int ****ppppiVar1;\n  int ****ppppiVar2;\n  code *pcVar3;\n  int ***pppiVar4;\n  undefined **ppuVar5;\n  int **ppiVar6;\n  int *piVar7;\n  bool bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  uint **ppuVar11;\n  char cVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  int ****ppppiVar17;\n  int ***pppiVar18;\n  int ****ppppiVar19;\n  byte bVar20;\n  int iVar21;\n  uint ***pppuVar22;\n  uint uVar23;\n  int ****ppppiVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  int *piVar27;\n  undefined1 *puVar28;\n  int iVar29;\n  longlong lVar30;\n  longlong lVar31;\n  int local_11c;\n  int local_118;\n  undefined4 *local_114;\n  undefined4 *local_110;\n  uint ***local_10c;\n  uint ***local_108;\n  uint ***local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint **local_ec;\n  uint **local_e8;\n  uint local_e4;\n  uint local_e0;\n  int ***local_dc;\n  undefined4 *local_d8;\n  undefined8 local_d4;\n  undefined8 local_cc;\n  undefined8 local_c4;\n  uint ***local_bc;\n  undefined **local_b8;\n  uint ***local_b4;\n  uint local_b0;\n  uint **local_a4;\n  int local_a0;\n  uint *local_9c [4];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  int ***local_74;\n  uint **local_70;\n  uint **local_6c;\n  uint **local_68;\n  uint **local_64;\n  uint **local_60;\n  undefined4 *local_5c;\n  uint *local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int ***local_44;\n  uint **local_40;\n  uint **local_3c [4];\n  undefined8 local_2c;\n  undefined8 local_24;\n  \n  local_b8 = &__DT_PLTGOT;\n  local_e4 = param_5;\n  local_b4 = *(uint ****)(param_1 + 0x34);\n  local_e0 = param_6;\n  iVar13 = *(int *)(param_1 + 0x30);\n  uVar25 = (int)local_b4 - iVar13 >> 5;\n  local_cc._0_4_ = uVar25;\n  if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (undefined4 *)FUN_001e5200(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  puVar14 = (undefined4 *)*param_11;\njoined_r0x001608d0:\n  piVar27 = &local_11c;\n  if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }\n  local_ec = (uint **)0x0;\n  local_cc = *param_7;\n  local_d8 = local_114 + 1;\n  local_dc = (int ***)(local_b8 + -0x2d01);\n  local_b4 = (uint ***)(local_e4 - 1);\n  local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);\n  local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;\n  local_11c = (int)local_b8 + -0xeb73d;\n  local_e8 = (uint **)local_11c;\n  do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );\n  iVar29 = iVar29 >> 1;\n  if (iVar29 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}" primitive_type (function_declarator "FUN_00160460(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "uint param_6" type_identifier identifier) , (parameter_declaration "longlong *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "undefined4 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  int ****ppppiVar1;\n  int ****ppppiVar2;\n  code *pcVar3;\n  int ***pppiVar4;\n  undefined **ppuVar5;\n  int **ppiVar6;\n  int *piVar7;\n  bool bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  uint **ppuVar11;\n  char cVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  int ****ppppiVar17;\n  int ***pppiVar18;\n  int ****ppppiVar19;\n  byte bVar20;\n  int iVar21;\n  uint ***pppuVar22;\n  uint uVar23;\n  int ****ppppiVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  int *piVar27;\n  undefined1 *puVar28;\n  int iVar29;\n  longlong lVar30;\n  longlong lVar31;\n  int local_11c;\n  int local_118;\n  undefined4 *local_114;\n  undefined4 *local_110;\n  uint ***local_10c;\n  uint ***local_108;\n  uint ***local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint **local_ec;\n  uint **local_e8;\n  uint local_e4;\n  uint local_e0;\n  int ***local_dc;\n  undefined4 *local_d8;\n  undefined8 local_d4;\n  undefined8 local_cc;\n  undefined8 local_c4;\n  uint ***local_bc;\n  undefined **local_b8;\n  uint ***local_b4;\n  uint local_b0;\n  uint **local_a4;\n  int local_a0;\n  uint *local_9c [4];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  int ***local_74;\n  uint **local_70;\n  uint **local_6c;\n  uint **local_68;\n  uint **local_64;\n  uint **local_60;\n  undefined4 *local_5c;\n  uint *local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int ***local_44;\n  uint **local_40;\n  uint **local_3c [4];\n  undefined8 local_2c;\n  undefined8 local_24;\n  \n  local_b8 = &__DT_PLTGOT;\n  local_e4 = param_5;\n  local_b4 = *(uint ****)(param_1 + 0x34);\n  local_e0 = param_6;\n  iVar13 = *(int *)(param_1 + 0x30);\n  uVar25 = (int)local_b4 - iVar13 >> 5;\n  local_cc._0_4_ = uVar25;\n  if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (undefined4 *)FUN_001e5200(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  puVar14 = (undefined4 *)*param_11;\njoined_r0x001608d0:\n  piVar27 = &local_11c;\n  if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }\n  local_ec = (uint **)0x0;\n  local_cc = *param_7;\n  local_d8 = local_114 + 1;\n  local_dc = (int ***)(local_b8 + -0x2d01);\n  local_b4 = (uint ***)(local_e4 - 1);\n  local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);\n  local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;\n  local_11c = (int)local_b8 + -0xeb73d;\n  local_e8 = (uint **)local_11c;\n  do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );\n  iVar29 = iVar29 >> 1;\n  if (iVar29 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}" { (declaration "int ****ppppiVar1;" primitive_type (pointer_declarator "****ppppiVar1" * (pointer_declarator "***ppppiVar1" * (pointer_declarator "**ppppiVar1" * (pointer_declarator "*ppppiVar1" * identifier)))) ;) (declaration "int ****ppppiVar2;" primitive_type (pointer_declarator "****ppppiVar2" * (pointer_declarator "***ppppiVar2" * (pointer_declarator "**ppppiVar2" * (pointer_declarator "*ppppiVar2" * identifier)))) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int ***pppiVar4;" primitive_type (pointer_declarator "***pppiVar4" * (pointer_declarator "**pppiVar4" * (pointer_declarator "*pppiVar4" * identifier))) ;) (declaration "undefined **ppuVar5;" type_identifier (pointer_declarator "**ppuVar5" * (pointer_declarator "*ppuVar5" * identifier)) ;) (declaration "int **ppiVar6;" primitive_type (pointer_declarator "**ppiVar6" * (pointer_declarator "*ppiVar6" * identifier)) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "longlong lVar10;" type_identifier identifier ;) (declaration "uint **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int ****ppppiVar17;" primitive_type (pointer_declarator "****ppppiVar17" * (pointer_declarator "***ppppiVar17" * (pointer_declarator "**ppppiVar17" * (pointer_declarator "*ppppiVar17" * identifier)))) ;) (declaration "int ***pppiVar18;" primitive_type (pointer_declarator "***pppiVar18" * (pointer_declarator "**pppiVar18" * (pointer_declarator "*pppiVar18" * identifier))) ;) (declaration "int ****ppppiVar19;" primitive_type (pointer_declarator "****ppppiVar19" * (pointer_declarator "***ppppiVar19" * (pointer_declarator "**ppppiVar19" * (pointer_declarator "*ppppiVar19" * identifier)))) ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint ***pppuVar22;" type_identifier (pointer_declarator "***pppuVar22" * (pointer_declarator "**pppuVar22" * (pointer_declarator "*pppuVar22" * identifier))) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int ****ppppiVar24;" primitive_type (pointer_declarator "****ppppiVar24" * (pointer_declarator "***ppppiVar24" * (pointer_declarator "**ppppiVar24" * (pointer_declarator "*ppppiVar24" * identifier)))) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "undefined4 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "undefined1 *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "longlong lVar30;" type_identifier identifier ;) (declaration "longlong lVar31;" type_identifier identifier ;) (declaration "int local_11c;" primitive_type identifier ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "undefined4 *local_114;" type_identifier (pointer_declarator "*local_114" * identifier) ;) (declaration "undefined4 *local_110;" type_identifier (pointer_declarator "*local_110" * identifier) ;) (declaration "uint ***local_10c;" type_identifier (pointer_declarator "***local_10c" * (pointer_declarator "**local_10c" * (pointer_declarator "*local_10c" * identifier))) ;) (declaration "uint ***local_108;" type_identifier (pointer_declarator "***local_108" * (pointer_declarator "**local_108" * (pointer_declarator "*local_108" * identifier))) ;) (declaration "uint ***local_104;" type_identifier (pointer_declarator "***local_104" * (pointer_declarator "**local_104" * (pointer_declarator "*local_104" * identifier))) ;) (declaration "int local_100;" primitive_type identifier ;) (declaration "int local_fc;" primitive_type identifier ;) (declaration "int local_f8;" primitive_type identifier ;) (declaration "uint local_f4;" type_identifier identifier ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "uint **local_ec;" type_identifier (pointer_declarator "**local_ec" * (pointer_declarator "*local_ec" * identifier)) ;) (declaration "uint **local_e8;" type_identifier (pointer_declarator "**local_e8" * (pointer_declarator "*local_e8" * identifier)) ;) (declaration "uint local_e4;" type_identifier identifier ;) (declaration "uint local_e0;" type_identifier identifier ;) (declaration "int ***local_dc;" primitive_type (pointer_declarator "***local_dc" * (pointer_declarator "**local_dc" * (pointer_declarator "*local_dc" * identifier))) ;) (declaration "undefined4 *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "undefined8 local_d4;" type_identifier identifier ;) (declaration "undefined8 local_cc;" type_identifier identifier ;) (declaration "undefined8 local_c4;" type_identifier identifier ;) (declaration "uint ***local_bc;" type_identifier (pointer_declarator "***local_bc" * (pointer_declarator "**local_bc" * (pointer_declarator "*local_bc" * identifier))) ;) (declaration "undefined **local_b8;" type_identifier (pointer_declarator "**local_b8" * (pointer_declarator "*local_b8" * identifier)) ;) (declaration "uint ***local_b4;" type_identifier (pointer_declarator "***local_b4" * (pointer_declarator "**local_b4" * (pointer_declarator "*local_b4" * identifier))) ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "uint **local_a4;" type_identifier (pointer_declarator "**local_a4" * (pointer_declarator "*local_a4" * identifier)) ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "uint *local_9c [4];" type_identifier (pointer_declarator "*local_9c [4]" * (array_declarator "local_9c [4]" identifier [ number_literal ])) ;) (declaration "undefined1 *local_8c [2];" type_identifier (pointer_declarator "*local_8c [2]" * (array_declarator "local_8c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_84 [16];" type_identifier (array_declarator "local_84 [16]" identifier [ number_literal ]) ;) (declaration "int ***local_74;" primitive_type (pointer_declarator "***local_74" * (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier))) ;) (declaration "uint **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "uint **local_6c;" type_identifier (pointer_declarator "**local_6c" * (pointer_declarator "*local_6c" * identifier)) ;) (declaration "uint **local_68;" type_identifier (pointer_declarator "**local_68" * (pointer_declarator "*local_68" * identifier)) ;) (declaration "uint **local_64;" type_identifier (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier)) ;) (declaration "uint **local_60;" type_identifier (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "undefined4 *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int ***local_44;" primitive_type (pointer_declarator "***local_44" * (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier))) ;) (declaration "uint **local_40;" type_identifier (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier)) ;) (declaration "uint **local_3c [4];" type_identifier (pointer_declarator "**local_3c [4]" * (pointer_declarator "*local_3c [4]" * (array_declarator "local_3c [4]" identifier [ number_literal ]))) ;) (declaration "undefined8 local_2c;" type_identifier identifier ;) (declaration "undefined8 local_24;" type_identifier identifier ;) (expression_statement "local_b8 = &__DT_PLTGOT;" (assignment_expression "local_b8 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_e4 = param_5;" (assignment_expression "local_e4 = param_5" identifier = identifier) ;) (expression_statement "local_b4 = *(uint ****)(param_1 + 0x34);" (assignment_expression "local_b4 = *(uint ****)(param_1 + 0x34)" identifier = (pointer_expression "*(uint ****)(param_1 + 0x34)" * (cast_expression "(uint ****)(param_1 + 0x34)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_e0 = param_6;" (assignment_expression "local_e0 = param_6" identifier = identifier) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = (int)local_b4 - iVar13 >> 5;" (assignment_expression "uVar25 = (int)local_b4 - iVar13 >> 5" identifier = (binary_expression "(int)local_b4 - iVar13 >> 5" (binary_expression "(int)local_b4 - iVar13" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal)) ;) (expression_statement "local_cc._0_4_ = uVar25;" (assignment_expression "local_cc._0_4_ = uVar25" (field_expression "local_cc._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }" if (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }" { (expression_statement "iVar21 = ((int)local_b4 - iVar13) + iVar13;" (assignment_expression "iVar21 = ((int)local_b4 - iVar13) + iVar13" identifier = (binary_expression "((int)local_b4 - iVar13) + iVar13" (parenthesized_expression "((int)local_b4 - iVar13)" ( (binary_expression "(int)local_b4 - iVar13" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + identifier)) ;) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (do_statement "do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);" do (compound_statement "{\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    }" { (if_statement "if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }" if (parenthesized_expression "(*(int *)(iVar13 + 0x1c) != 0)" ( (binary_expression "*(int *)(iVar13 + 0x1c) != 0" (pointer_expression "*(int *)(iVar13 + 0x1c)" * (cast_expression "(int *)(iVar13 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1c)" ( (binary_expression "iVar13 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        bVar8 = true;\n      }" { (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) })) (expression_statement "iVar13 = iVar13 + 0x20;" (assignment_expression "iVar13 = iVar13 + 0x20" identifier = (binary_expression "iVar13 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar21 != iVar13)" ( (binary_expression "iVar21 != iVar13" identifier != identifier) )) ;) (if_statement "if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }" if (parenthesized_expression "(bVar8)" ( identifier )) (compound_statement "{\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }" { (expression_statement "local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);" (assignment_expression "local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(uVar25 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(uVar25 * 0xc)" identifier (argument_list "(uVar25 * 0xc)" ( (binary_expression "uVar25 * 0xc" identifier * number_literal) ))))) ;) (expression_statement "puVar14 = local_114;" (assignment_expression "puVar14 = local_114" identifier = identifier) ;) (expression_statement "uVar23 = uVar25;" (assignment_expression "uVar23 = uVar25" identifier = identifier) ;) (do_statement "do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);" do (compound_statement "{\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      }" { (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" identifier = (binary_expression "uVar23 - 1" identifier - number_literal)) ;) (expression_statement "puVar14 = puVar14 + 3;" (assignment_expression "puVar14 = puVar14 + 3" identifier = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) ;) (expression_statement "local_110 = local_114 + uVar25 * 3;" (assignment_expression "local_110 = local_114 + uVar25 * 3" identifier = (binary_expression "local_114 + uVar25 * 3" identifier + (binary_expression "uVar25 * 3" identifier * number_literal))) ;) (expression_statement "puVar14 = (undefined4 *)*param_11;" (assignment_expression "puVar14 = (undefined4 *)*param_11" identifier = (cast_expression "(undefined4 *)*param_11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_11" * identifier))) ;) (expression_statement "local_f4 = (uint)local_cc;" (assignment_expression "local_f4 = (uint)local_cc" identifier = (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto joined_r0x001608d0;" goto statement_identifier ;) })) })) (expression_statement "local_114 = (undefined4 *)FUN_001e5200(0xc);" (assignment_expression "local_114 = (undefined4 *)FUN_001e5200(0xc)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0xc)" identifier (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "local_f4 = 1;" (assignment_expression "local_f4 = 1" identifier = number_literal) ;) (expression_statement "*local_114 = 0;" (assignment_expression "*local_114 = 0" (pointer_expression "*local_114" * identifier) = number_literal) ;) (expression_statement "local_114[1] = 0;" (assignment_expression "local_114[1] = 0" (subscript_expression "local_114[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_114[2] = 0;" (assignment_expression "local_114[2] = 0" (subscript_expression "local_114[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_110 = local_114 + 3;" (assignment_expression "local_110 = local_114 + 3" identifier = (binary_expression "local_114 + 3" identifier + number_literal)) ;) (expression_statement "puVar14 = (undefined4 *)*param_11;" (assignment_expression "puVar14 = (undefined4 *)*param_11" identifier = (cast_expression "(undefined4 *)*param_11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_11" * identifier))) ;) (labeled_statement "joined_r0x001608d0:\n  piVar27 = &local_11c;" statement_identifier : (expression_statement "piVar27 = &local_11c;" (assignment_expression "piVar27 = &local_11c" identifier = (pointer_expression "&local_11c" & identifier)) ;)) (if_statement "if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }" if (parenthesized_expression "(puVar14 != param_11)" ( (binary_expression "puVar14 != param_11" identifier != identifier) )) (compound_statement "{\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }" { (expression_statement "piVar27 = &local_11c;" (assignment_expression "piVar27 = &local_11c" identifier = (pointer_expression "&local_11c" & identifier)) ;) (expression_statement "local_d4._0_4_ = (int ****)local_3c;" (assignment_expression "local_d4._0_4_ = (int ****)local_3c" (field_expression "local_d4._0_4_" identifier . field_identifier) = (cast_expression "(int ****)local_3c" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "local_bc = &local_a4;" (assignment_expression "local_bc = &local_a4" identifier = (pointer_expression "&local_a4" & identifier)) ;) (do_statement "do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);" do (compound_statement "{\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    }" { (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar14 + 2" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160572;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160572" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_b4 = (uint ***)FUN_000ede60();" (assignment_expression "local_b4 = (uint ***)FUN_000ede60()" identifier = (cast_expression "(uint ***)FUN_000ede60()" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (call_expression "FUN_000ede60()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar14 + 2" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160586;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160586" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar15 = FUN_000edef0();" (assignment_expression "uVar15 = FUN_000edef0()" identifier = (call_expression "FUN_000edef0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_5c = (undefined4 *)puVar14[2];" (assignment_expression "local_5c = (undefined4 *)puVar14[2]" identifier = (cast_expression "(undefined4 *)puVar14[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[2]" identifier [ number_literal ]))) ;) (expression_statement "local_58 = (uint *)puVar14[3];" (assignment_expression "local_58 = (uint *)puVar14[3]" identifier = (cast_expression "(uint *)puVar14[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[3]" identifier [ number_literal ]))) ;) (expression_statement "local_54 = puVar14[4];" (assignment_expression "local_54 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "local_50 = puVar14[5];" (assignment_expression "local_50 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "local_4c = puVar14[6];" (assignment_expression "local_4c = puVar14[6]" identifier = (subscript_expression "puVar14[6]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar14[7];" (assignment_expression "local_48 = puVar14[7]" identifier = (subscript_expression "puVar14[7]" identifier [ number_literal ])) ;) (expression_statement "local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);" (assignment_expression "local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00)" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (cast_expression "(uint **)((uint)local_3c[0] & 0xffffff00)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)local_3c[0] & 0xffffff00)" ( (binary_expression "(uint)local_3c[0] & 0xffffff00" (cast_expression "(uint)local_3c[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_3c[0]" identifier [ number_literal ])) & number_literal) )))) ;) (expression_statement "local_44 = (int ***)(int ****)local_d4;" (assignment_expression "local_44 = (int ***)(int ****)local_d4" identifier = (cast_expression "(int ***)(int ****)local_d4" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier))) ;) (expression_statement "iVar13 = (int)local_b4[7];" (assignment_expression "iVar13 = (int)local_b4[7]" identifier = (cast_expression "(int)local_b4[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_b4[7]" identifier [ number_literal ]))) ;) (expression_statement "local_40 = (uint **)0x0;" (assignment_expression "local_40 = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_2c._0_4_ = 0;" (assignment_expression "local_2c._0_4_ = 0" (field_expression "local_2c._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_2c._4_4_ = 0;" (assignment_expression "local_2c._4_4_ = 0" (field_expression "local_2c._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_24._0_4_ = 1;" (assignment_expression "local_24._0_4_ = 1" (field_expression "local_24._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_24._4_4_ = 0;" (assignment_expression "local_24._4_4_ = 0" (field_expression "local_24._4_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }" { (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar13 + 0x1c" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160600;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160600" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000669a0();" (call_expression "FUN_000669a0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = (int)*local_b4;" (assignment_expression "iVar13 = (int)*local_b4" identifier = (cast_expression "(int)*local_b4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*local_b4" * identifier))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -8) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -8) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -8)" * (cast_expression "(undefined4 *)((int)piVar27 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0xc) = local_b4;" (assignment_expression "*(uint ****)((int)piVar27 + -0xc) = local_b4" (pointer_expression "*(uint ****)((int)piVar27 + -0xc)" * (cast_expression "(uint ****)((int)piVar27 + -0xc)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_bc;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_bc" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" * (cast_expression "(uint ****)((int)piVar27 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "pcVar3 = *(code **)(iVar13 + 0x40);" (assignment_expression "pcVar3 = *(code **)(iVar13 + 0x40)" identifier = (pointer_expression "*(code **)(iVar13 + 0x40)" * (cast_expression "(code **)(iVar13 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x40)" ( (binary_expression "iVar13 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160619;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160619" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(uint ***)((int)piVar27 + -0x14) = local_a4;" (assignment_expression "*(uint ***)((int)piVar27 + -0x14) = local_a4" (pointer_expression "*(uint ***)((int)piVar27 + -0x14)" * (cast_expression "(uint ***)((int)piVar27 + -0x14)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x16062a" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar12 = FUN_00096ec0();" (assignment_expression "cVar12 = FUN_00096ec0()" identifier = (call_expression "FUN_00096ec0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }" if (parenthesized_expression "(cVar12 == '\0')" ( (binary_expression "cVar12 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }" { (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_bc;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_bc" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" * (cast_expression "(uint ****)((int)piVar27 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x14) = &local_44;" (assignment_expression "*(int *****)((int)piVar27 + -0x14) = &local_44" (pointer_expression "*(int *****)((int)piVar27 + -0x14)" * (cast_expression "(int *****)((int)piVar27 + -0x14)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_44" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001ee9c0();" (call_expression "FUN_001ee9c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar28 = (undefined1 *)((int)piVar27 + -4);" (assignment_expression "puVar28 = (undefined1 *)((int)piVar27 + -4)" identifier = (cast_expression "(undefined1 *)((int)piVar27 + -4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -4)" ( (binary_expression "(int)piVar27 + -4" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }" else (compound_statement "{\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }" { (expression_statement "local_d8 = (undefined4 *)local_84;" (assignment_expression "local_d8 = (undefined4 *)local_84" identifier = (cast_expression "(undefined4 *)local_84" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -8) = 0" (pointer_expression "*(undefined4 *)((int)piVar27 + -8)" * (cast_expression "(undefined4 *)((int)piVar27 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;" (assignment_expression "*(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4" (pointer_expression "*(int *)((int)piVar27 + -0xc)" * (cast_expression "(int *)((int)piVar27 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a0 + (int)local_a4" identifier + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_a4;" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_a4" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" * (cast_expression "(uint ***)((int)piVar27 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 ***)((int)piVar27 + -0x14) = local_8c;" (assignment_expression "*(undefined1 ***)((int)piVar27 + -0x14) = local_8c" (pointer_expression "*(undefined1 ***)((int)piVar27 + -0x14)" * (cast_expression "(undefined1 ***)((int)piVar27 + -0x14)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x160662;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x160662" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_8c[0] = (undefined1 *)local_d8;" (assignment_expression "local_8c[0] = (undefined1 *)local_d8" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = (cast_expression "(undefined1 *)local_d8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 ***)((int)piVar27 + -0x10) = local_8c;" (assignment_expression "*(undefined1 ***)((int)piVar27 + -0x10) = local_8c" (pointer_expression "*(undefined1 ***)((int)piVar27 + -0x10)" * (cast_expression "(undefined1 ***)((int)piVar27 + -0x10)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x14) = &local_74;" (assignment_expression "*(int *****)((int)piVar27 + -0x14) = &local_74" (pointer_expression "*(int *****)((int)piVar27 + -0x14)" * (cast_expression "(int *****)((int)piVar27 + -0x14)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_74" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x160674;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x160674" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0009e270();" (call_expression "FUN_0009e270()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar11 = local_3c[0];" (assignment_expression "ppuVar11 = local_3c[0]" identifier = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (expression_statement "pppiVar18 = local_44;" (assignment_expression "pppiVar18 = local_44" identifier = identifier) ;) (expression_statement "local_dc = local_74;" (assignment_expression "local_dc = local_74" identifier = identifier) ;) (expression_statement "pppuVar22 = &local_6c;" (assignment_expression "pppuVar22 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (if_statement "if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }" if (parenthesized_expression "((uint ***)local_74 == &local_6c)" ( (binary_expression "(uint ***)local_74 == &local_6c" (cast_expression "(uint ***)local_74" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) == (pointer_expression "&local_6c" & identifier)) )) (compound_statement "{\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }" { (if_statement "if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }" if (parenthesized_expression "((int ***)local_70 != (int ***)0x0)" ( (binary_expression "(int ***)local_70 != (int ***)0x0" (cast_expression "(int ***)local_70" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) != (cast_expression "(int ***)0x0" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }" { (if_statement "if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }" if (parenthesized_expression "((int ***)local_70 == (int ***)0x1)" ( (binary_expression "(int ***)local_70 == (int ***)0x1" (cast_expression "(int ***)local_70" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) == (cast_expression "(int ***)0x1" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }" { (expression_statement "*(undefined1 *)local_44 = local_6c._0_1_;" (assignment_expression "*(undefined1 *)local_44 = local_6c._0_1_" (pointer_expression "*(undefined1 *)local_44" * (cast_expression "(undefined1 *)local_44" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_6c._0_1_" identifier . field_identifier)) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) (expression_statement "*(undefined1 *)((int)local_44 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)local_44 + 1) = 0" (pointer_expression "*(undefined1 *)((int)local_44 + 1)" * (cast_expression "(undefined1 *)((int)local_44 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_001606d8;" goto statement_identifier ;) })) (expression_statement "local_dc = (int ***)&local_6c;" (assignment_expression "local_dc = (int ***)&local_6c" identifier = (cast_expression "(int ***)&local_6c" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&local_6c" & identifier))) ;) (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_70;" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_70" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" * (cast_expression "(uint ***)((int)piVar27 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0x14) = &local_6c;" (assignment_expression "*(uint ****)((int)piVar27 + -0x14) = &local_6c" (pointer_expression "*(uint ****)((int)piVar27 + -0x14)" * (cast_expression "(uint ****)((int)piVar27 + -0x14)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(int ****)((int)piVar27 + -0x18) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0x18) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0x18)" * (cast_expression "(int ****)((int)piVar27 + -0x18)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x1c) = 0x161301" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x1c)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x1c)" ( (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));" (call_expression "memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10))" identifier (argument_list "(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10))" ( (pointer_expression "*(void **)((int)piVar27 + -0x18)" * (cast_expression "(void **)((int)piVar27 + -0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)piVar27 + -0x14)" * (cast_expression "(void **)((int)piVar27 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)piVar27 + -0x10)" * (cast_expression "(size_t *)((int)piVar27 + -0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pppuVar22 = (uint ***)local_dc;" (assignment_expression "pppuVar22 = (uint ***)local_dc" identifier = (cast_expression "(uint ***)local_dc" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) })) (expression_statement "*(undefined1 *)((int)local_44 + (int)local_70) = 0;" (assignment_expression "*(undefined1 *)((int)local_44 + (int)local_70) = 0" (pointer_expression "*(undefined1 *)((int)local_44 + (int)local_70)" * (cast_expression "(undefined1 *)((int)local_44 + (int)local_70)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + (int)local_70)" ( (binary_expression "(int)local_44 + (int)local_70" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) }) (else_clause "else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }" else (compound_statement "{\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }" { (expression_statement "local_e8 = local_6c;" (assignment_expression "local_e8 = local_6c" identifier = identifier) ;) (if_statement "if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }" if (parenthesized_expression "((int ****)local_44 != (int ****)local_d4)" ( (binary_expression "(int ****)local_44 != (int ****)local_d4" (cast_expression "(int ****)local_44" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) (compound_statement "{\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }" { (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) (expression_statement "local_ec = local_3c[0];" (assignment_expression "local_ec = local_3c[0]" identifier = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (expression_statement "local_3c[0] = local_6c;" (assignment_expression "local_3c[0] = local_6c" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = local_74;" (assignment_expression "local_44 = local_74" identifier = identifier) ;) (if_statement "if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }" if (parenthesized_expression "((uint ***)pppiVar18 != (uint ***)0x0)" ( (binary_expression "(uint ***)pppiVar18 != (uint ***)0x0" (cast_expression "(uint ***)pppiVar18" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) != (cast_expression "(uint ***)0x0" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }" { (expression_statement "local_74 = pppiVar18;" (assignment_expression "local_74 = pppiVar18" identifier = identifier) ;) (expression_statement "local_6c = ppuVar11;" (assignment_expression "local_6c = ppuVar11" identifier = identifier) ;) (goto_statement "goto LAB_001606d8;" goto statement_identifier ;) })) })) (expression_statement "local_3c[0] = local_6c;" (assignment_expression "local_3c[0] = local_6c" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) (expression_statement "local_44 = local_74;" (assignment_expression "local_44 = local_74" identifier = identifier) ;) (expression_statement "pppuVar22 = &local_6c;" (assignment_expression "pppuVar22 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "local_74 = (int ***)&local_6c;" (assignment_expression "local_74 = (int ***)&local_6c" identifier = (cast_expression "(int ***)&local_6c" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&local_6c" & identifier))) ;) }))) (labeled_statement "LAB_001606d8:\n        local_70 = (uint **)0x0;" statement_identifier : (expression_statement "local_70 = (uint **)0x0;" (assignment_expression "local_70 = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "*(undefined1 *)local_74 = 0;" (assignment_expression "*(undefined1 *)local_74 = 0" (pointer_expression "*(undefined1 *)local_74" * (cast_expression "(undefined1 *)local_74" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }" if (parenthesized_expression "((uint ***)local_74 != pppuVar22)" ( (binary_expression "(uint ***)local_74 != pppuVar22" (cast_expression "(uint ***)local_74" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) != identifier) )) (compound_statement "{\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }" { (expression_statement "*(int ****)((int)piVar27 + -0x18) = local_74;" (assignment_expression "*(int ****)((int)piVar27 + -0x18) = local_74" (pointer_expression "*(int ****)((int)piVar27 + -0x18)" * (cast_expression "(int ****)((int)piVar27 + -0x18)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x1c)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x1c)" ( (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar28 = (undefined1 *)((int)piVar27 + -8);" (assignment_expression "puVar28 = (undefined1 *)((int)piVar27 + -8)" identifier = (cast_expression "(undefined1 *)((int)piVar27 + -8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }" if (parenthesized_expression "((undefined4 *)local_8c[0] != local_d8)" ( (binary_expression "(undefined4 *)local_8c[0] != local_d8" (cast_expression "(undefined4 *)local_8c[0]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_8c[0]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }" { (expression_statement "*(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];" (assignment_expression "*(undefined1 **)((int)piVar27 + -0x18) = local_8c[0]" (pointer_expression "*(undefined1 **)((int)piVar27 + -0x18)" * (cast_expression "(undefined1 **)((int)piVar27 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_8c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x1c) = 0x160718" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x1c)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x1c)" ( (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar28 = (undefined1 *)((int)piVar27 + -8);" (assignment_expression "puVar28 = (undefined1 *)((int)piVar27 + -8)" identifier = (cast_expression "(undefined1 *)((int)piVar27 + -8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) }))) (expression_statement "piVar27 = (int *)puVar28;" (assignment_expression "piVar27 = (int *)puVar28" identifier = (cast_expression "(int *)puVar28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }" if (parenthesized_expression "(local_a4 != local_9c)" ( (binary_expression "local_a4 != local_9c" identifier != identifier) )) (compound_statement "{\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }" { (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_a4;" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_a4" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" * (cast_expression "(uint ***)((int)piVar27 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16073a" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pppuVar22 = local_b4;" (assignment_expression "pppuVar22 = local_b4" identifier = identifier) ;) (if_statement "if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }" if (parenthesized_expression "(puVar14[2] == -4)" ( (binary_expression "puVar14[2] == -4" (subscript_expression "puVar14[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }" { (expression_statement "piVar7 = (int *)puVar14[6];" (assignment_expression "piVar7 = (int *)puVar14[6]" identifier = (cast_expression "(int *)puVar14[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[6]" identifier [ number_literal ]))) ;) (expression_statement "local_2c._0_4_ = piVar7[3];" (assignment_expression "local_2c._0_4_ = piVar7[3]" (field_expression "local_2c._0_4_" identifier . field_identifier) = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "local_2c._4_4_ = piVar7[4];" (assignment_expression "local_2c._4_4_ = piVar7[4]" (field_expression "local_2c._4_4_" identifier . field_identifier) = (subscript_expression "piVar7[4]" identifier [ number_literal ])) ;) (expression_statement "ppuVar5 = *(undefined ***)(*piVar7 + 0xc);" (assignment_expression "ppuVar5 = *(undefined ***)(*piVar7 + 0xc)" identifier = (pointer_expression "*(undefined ***)(*piVar7 + 0xc)" * (cast_expression "(undefined ***)(*piVar7 + 0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar7 + 0xc)" ( (binary_expression "*piVar7 + 0xc" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }" if (parenthesized_expression "(ppuVar5 == local_b8 + -0xc6e88)" ( (binary_expression "ppuVar5 == local_b8 + -0xc6e88" identifier == (binary_expression "local_b8 + -0xc6e88" identifier + number_literal)) )) (compound_statement "{\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }" { (expression_statement "local_24 = *(undefined8 *)(piVar7 + 9);" (assignment_expression "local_24 = *(undefined8 *)(piVar7 + 9)" identifier = (pointer_expression "*(undefined8 *)(piVar7 + 9)" * (cast_expression "(undefined8 *)(piVar7 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 9)" ( (binary_expression "piVar7 + 9" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(undefined8 *)(piVar7 + 3);" (assignment_expression "local_2c = *(undefined8 *)(piVar7 + 3)" identifier = (pointer_expression "*(undefined8 *)(piVar7 + 3)" * (cast_expression "(undefined8 *)(piVar7 + 3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 3)" ( (binary_expression "piVar7 + 3" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }" else (compound_statement "{\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }" { (expression_statement "*(int **)((int)piVar27 + -0x10) = piVar7;" (assignment_expression "*(int **)((int)piVar27 + -0x10) = piVar7" (pointer_expression "*(int **)((int)piVar27 + -0x10)" * (cast_expression "(int **)((int)piVar27 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16140c" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_24 = (*(code *)ppuVar5)();" (assignment_expression "local_24 = (*(code *)ppuVar5)()" identifier = (call_expression "(*(code *)ppuVar5)()" (parenthesized_expression "(*(code *)ppuVar5)" ( (pointer_expression "*(code *)ppuVar5" * (cast_expression "(code *)ppuVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) }))) }) (else_clause "else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }" else (compound_statement "{\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }" { (expression_statement "iVar13 = (int)*local_b4;" (assignment_expression "iVar13 = (int)*local_b4" identifier = (cast_expression "(int)*local_b4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*local_b4" * identifier))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_b4;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_b4" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" * (cast_expression "(uint ****)((int)piVar27 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "pcVar3 = *(code **)(iVar13 + 0x3c);" (assignment_expression "pcVar3 = *(code **)(iVar13 + 0x3c)" identifier = (pointer_expression "*(code **)(iVar13 + 0x3c)" * (cast_expression "(code **)(iVar13 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x3c)" ( (binary_expression "iVar13 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160757;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160757" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_2c = (*pcVar3)();" (assignment_expression "local_2c = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar13 = (int)*pppuVar22;" (assignment_expression "iVar13 = (int)*pppuVar22" identifier = (cast_expression "(int)*pppuVar22" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar22" * identifier))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = pppuVar22;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = pppuVar22" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" * (cast_expression "(uint ****)((int)piVar27 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(iVar13 + 0x5c);" (assignment_expression "pcVar3 = *(code **)(iVar13 + 0x5c)" identifier = (pointer_expression "*(code **)(iVar13 + 0x5c)" * (cast_expression "(code **)(iVar13 + 0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x5c)" ( (binary_expression "iVar13 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160767;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160767" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_24 = (*pcVar3)();" (assignment_expression "local_24 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "iVar13 = (int)local_b4[7];" (assignment_expression "iVar13 = (int)local_b4[7]" identifier = (cast_expression "(int)local_b4[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_b4[7]" identifier [ number_literal ]))) ;) (if_statement "if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }" { (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar13 + 0x1c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160791;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160791" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000679d0();" (call_expression "FUN_000679d0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint ***)((int)piVar27 + -0xc) = local_b4[1];" (assignment_expression "*(uint ***)((int)piVar27 + -0xc) = local_b4[1]" (pointer_expression "*(uint ***)((int)piVar27 + -0xc)" * (cast_expression "(uint ***)((int)piVar27 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_b4[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)((int)piVar27 + -0x10) = param_1;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = param_1" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar12 = FUN_0015b690();" (assignment_expression "cVar12 = FUN_0015b690()" identifier = (call_expression "FUN_0015b690()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }" if (parenthesized_expression "(cVar12 == '\0')" ( (binary_expression "cVar12 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }" { (labeled_statement "LAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;" statement_identifier : (expression_statement "puVar16 = (undefined4 *)*puVar14;" (assignment_expression "puVar16 = (undefined4 *)*puVar14" identifier = (cast_expression "(undefined4 *)*puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;)) }) (else_clause "else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }" else (compound_statement "{\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }" { (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x34) != iVar13)" ( (binary_expression "*(int *)(param_1 + 0x34) != iVar13" (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }" { (if_statement "if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }" if (parenthesized_expression "((uint)local_cc != 0)" ( (binary_expression "(uint)local_cc != 0" (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal) )) (compound_statement "{\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }" { (expression_statement "puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);" (assignment_expression "puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20)" identifier = (cast_expression "(undefined4 *)(iVar13 + uVar25 * 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + uVar25 * 0x20)" ( (binary_expression "iVar13 + uVar25 * 0x20" identifier + (binary_expression "uVar25 * 0x20" identifier * number_literal)) )))) ;) (expression_statement "uVar15 = *puVar16;" (assignment_expression "uVar15 = *puVar16" identifier = (pointer_expression "*puVar16" * identifier)) ;) (if_statement "if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }" if (parenthesized_expression "(*(char *)(puVar16 + 6) == '\0')" ( (binary_expression "*(char *)(puVar16 + 6) == '\0'" (pointer_expression "*(char *)(puVar16 + 6)" * (cast_expression "(char *)(puVar16 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 6)" ( (binary_expression "puVar16 + 6" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }" { (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int ****)((int)piVar27 + -0x10) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0x10) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0x10)" * (cast_expression "(int ****)((int)piVar27 + -0x10)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));" (assignment_expression "iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc))" identifier = (call_expression "strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc))" identifier (argument_list "(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc))" ( (pointer_expression "*(char **)((int)piVar27 + -0x10)" * (cast_expression "(char **)((int)piVar27 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)piVar27 + -0xc)" * (cast_expression "(char **)((int)piVar27 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) }) (else_clause "else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }" else (compound_statement "{\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }" { (expression_statement "*(undefined4 *)((int)piVar27 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -8) = 0" (pointer_expression "*(undefined4 *)((int)piVar27 + -8)" * (cast_expression "(undefined4 *)((int)piVar27 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int ****)((int)piVar27 + -0xc) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0xc) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0xc)" * (cast_expression "(int ****)((int)piVar27 + -0xc)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x10) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x10) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160835;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160835" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));" (assignment_expression "iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8))" identifier = (call_expression "fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8))" identifier (argument_list "(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8))" ( (pointer_expression "*(char **)((int)piVar27 + -0x10)" * (cast_expression "(char **)((int)piVar27 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)piVar27 + -0xc)" * (cast_expression "(char **)((int)piVar27 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)piVar27 + -8)" * (cast_expression "(int *)((int)piVar27 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) }))) (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar25 = uVar25 + 1;" (assignment_expression "uVar25 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (if_statement "if (uVar25 == (uint)local_cc) goto LAB_001610b0;" if (parenthesized_expression "(uVar25 == (uint)local_cc)" ( (binary_expression "uVar25 == (uint)local_cc" identifier == (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (goto_statement "goto LAB_001610b0;" goto statement_identifier ;)) (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) })) (if_statement "if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }" if (parenthesized_expression "(uVar25 < (uint)local_cc)" ( (binary_expression "uVar25 < (uint)local_cc" identifier < (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }" { (expression_statement "puVar16 = local_114;" (assignment_expression "puVar16 = local_114" identifier = identifier) ;) (if_statement "if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }" if (parenthesized_expression "(uVar25 < local_f4)" ( (binary_expression "uVar25 < local_f4" identifier < identifier) )) (compound_statement "{\n                puVar16 = local_114 + uVar25 * 3;\n              }" { (expression_statement "puVar16 = local_114 + uVar25 * 3;" (assignment_expression "puVar16 = local_114 + uVar25 * 3" identifier = (binary_expression "local_114 + uVar25 * 3" identifier + (binary_expression "uVar25 * 3" identifier * number_literal))) ;) })) (expression_statement "puVar26 = (undefined4 *)puVar16[1];" (assignment_expression "puVar26 = (undefined4 *)puVar16[1]" identifier = (cast_expression "(undefined4 *)puVar16[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar16[1]" identifier [ number_literal ]))) ;) (if_statement "if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;" if (parenthesized_expression "(puVar26 != (undefined4 *)puVar16[2])" ( (binary_expression "puVar26 != (undefined4 *)puVar16[2]" identifier != (cast_expression "(undefined4 *)puVar16[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar16[2]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00161250;" goto statement_identifier ;)) (expression_statement "*(undefined4 ***)((int)piVar27 + -8) = &local_5c;" (assignment_expression "*(undefined4 ***)((int)piVar27 + -8) = &local_5c" (pointer_expression "*(undefined4 ***)((int)piVar27 + -8)" * (cast_expression "(undefined4 ***)((int)piVar27 + -8)" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0xc) = puVar26;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0xc) = puVar26" (pointer_expression "*(undefined4 **)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar16;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar16" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160881;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160881" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00163d60();" (call_expression "FUN_00163d60()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_001612ad;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_001610b0;" goto statement_identifier ;) })) (expression_statement "puVar26 = (undefined4 *)local_114[1];" (assignment_expression "puVar26 = (undefined4 *)local_114[1]" identifier = (cast_expression "(undefined4 *)local_114[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_114[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar16 = local_114;" (assignment_expression "puVar16 = local_114" identifier = identifier) ;) (if_statement "if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }" if (parenthesized_expression "(puVar26 == (undefined4 *)local_114[2])" ( (binary_expression "puVar26 == (undefined4 *)local_114[2]" identifier == (cast_expression "(undefined4 *)local_114[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_114[2]" identifier [ number_literal ]))) )) (compound_statement "{\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }" { (expression_statement "*(undefined4 ***)((int)piVar27 + -8) = &local_5c;" (assignment_expression "*(undefined4 ***)((int)piVar27 + -8) = &local_5c" (pointer_expression "*(undefined4 ***)((int)piVar27 + -8)" * (cast_expression "(undefined4 ***)((int)piVar27 + -8)" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0xc) = puVar26;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0xc) = puVar26" (pointer_expression "*(undefined4 **)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = local_114;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = local_114" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x161485;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x161485" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00163d60();" (call_expression "FUN_00163d60()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }" else (compound_statement "{\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }" { (labeled_statement "LAB_00161250:\n          *puVar26 = local_5c;" statement_identifier : (expression_statement "*puVar26 = local_5c;" (assignment_expression "*puVar26 = local_5c" (pointer_expression "*puVar26" * identifier) = identifier) ;)) (expression_statement "puVar26[1] = local_58;" (assignment_expression "puVar26[1] = local_58" (subscript_expression "puVar26[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[2] = local_54;" (assignment_expression "puVar26[2] = local_54" (subscript_expression "puVar26[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[3] = local_50;" (assignment_expression "puVar26[3] = local_50" (subscript_expression "puVar26[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[4] = local_4c;" (assignment_expression "puVar26[4] = local_4c" (subscript_expression "puVar26[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[5] = local_48;" (assignment_expression "puVar26[5] = local_48" (subscript_expression "puVar26[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[6] = puVar26 + 8;" (assignment_expression "puVar26[6] = puVar26 + 8" (subscript_expression "puVar26[6]" identifier [ number_literal ]) = (binary_expression "puVar26 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar27 + -4)" * (cast_expression "(undefined4 *)((int)piVar27 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -4)" ( (binary_expression "(int)piVar27 + -4" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);" (assignment_expression "*(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44)" (pointer_expression "*(undefined1 **)((int)piVar27 + -8)" * (cast_expression "(undefined1 **)((int)piVar27 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)local_40 + (int)local_44)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + (int)local_44)" ( (binary_expression "(int)local_40 + (int)local_44" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(int ****)((int)piVar27 + -0xc) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0xc) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0xc)" * (cast_expression "(int ****)((int)piVar27 + -0xc)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar26 + 6" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16128e" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined8 *)(puVar26 + 0xc) = local_2c;" (assignment_expression "*(undefined8 *)(puVar26 + 0xc) = local_2c" (pointer_expression "*(undefined8 *)(puVar26 + 0xc)" * (cast_expression "(undefined8 *)(puVar26 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xc)" ( (binary_expression "puVar26 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(puVar26 + 0xe) = local_24;" (assignment_expression "*(undefined8 *)(puVar26 + 0xe) = local_24" (pointer_expression "*(undefined8 *)(puVar26 + 0xe)" * (cast_expression "(undefined8 *)(puVar26 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xe)" ( (binary_expression "puVar26 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar16[1] = puVar16[1] + 0x40;" (assignment_expression "puVar16[1] = puVar16[1] + 0x40" (subscript_expression "puVar16[1]" identifier [ number_literal ]) = (binary_expression "puVar16[1] + 0x40" (subscript_expression "puVar16[1]" identifier [ number_literal ]) + number_literal)) ;) }))) (labeled_statement "LAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;" statement_identifier : (expression_statement "puVar16 = (undefined4 *)*puVar14;" (assignment_expression "puVar16 = (undefined4 *)*puVar14" identifier = (cast_expression "(undefined4 *)*puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;)) (expression_statement "param_11[2] = param_11[2] + -1;" (assignment_expression "param_11[2] = param_11[2] + -1" (subscript_expression "param_11[2]" identifier [ number_literal ]) = (binary_expression "param_11[2] + -1" (subscript_expression "param_11[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e9f90();" (call_expression "FUN_001e9f90()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }" if (parenthesized_expression "((int ****)local_44 != (int ****)local_d4)" ( (binary_expression "(int ****)local_44 != (int ****)local_d4" (cast_expression "(int ****)local_44" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) (compound_statement "{\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }" { (expression_statement "*(int ****)((int)piVar27 + -0x10) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0x10) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0x10)" * (cast_expression "(int ****)((int)piVar27 + -0x10)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar14 = puVar16;" (assignment_expression "puVar14 = puVar16" identifier = identifier) ;) }) while (parenthesized_expression "(puVar16 != param_11)" ( (binary_expression "puVar16 != param_11" identifier != identifier) )) ;) })) (expression_statement "local_ec = (uint **)0x0;" (assignment_expression "local_ec = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_cc = *param_7;" (assignment_expression "local_cc = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "local_d8 = local_114 + 1;" (assignment_expression "local_d8 = local_114 + 1" identifier = (binary_expression "local_114 + 1" identifier + number_literal)) ;) (expression_statement "local_dc = (int ***)(local_b8 + -0x2d01);" (assignment_expression "local_dc = (int ***)(local_b8 + -0x2d01)" identifier = (cast_expression "(int ***)(local_b8 + -0x2d01)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(local_b8 + -0x2d01)" ( (binary_expression "local_b8 + -0x2d01" identifier + number_literal) )))) ;) (expression_statement "local_b4 = (uint ***)(local_e4 - 1);" (assignment_expression "local_b4 = (uint ***)(local_e4 - 1)" identifier = (cast_expression "(uint ***)(local_e4 - 1)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(local_e4 - 1)" ( (binary_expression "local_e4 - 1" identifier - number_literal) )))) ;) (expression_statement "local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);" (assignment_expression "local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0)" identifier = (binary_expression "(local_e0 - 1) + (uint)(local_e4 != 0)" (parenthesized_expression "(local_e0 - 1)" ( (binary_expression "local_e0 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_e4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) ))))) ;) (expression_statement "local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;" (assignment_expression "local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4" identifier = (binary_expression "local_b0 & local_e0 | (uint)local_b4 & local_e4" (binary_expression "local_b0 & local_e0" identifier & identifier) | (binary_expression "(uint)local_b4 & local_e4" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier))) ;) (expression_statement "local_11c = (int)local_b8 + -0xeb73d;" (assignment_expression "local_11c = (int)local_b8 + -0xeb73d" identifier = (binary_expression "(int)local_b8 + -0xeb73d" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_e8 = (uint **)local_11c;" (assignment_expression "local_e8 = (uint **)local_11c" identifier = (cast_expression "(uint **)local_11c" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (do_statement "do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  }" { (expression_statement "ppuVar5 = local_b8;" (assignment_expression "ppuVar5 = local_b8" identifier = identifier) ;) (expression_statement "local_d4._0_4_ = (int ****)*local_d8;" (assignment_expression "local_d4._0_4_ = (int ****)*local_d8" (field_expression "local_d4._0_4_" identifier . field_identifier) = (cast_expression "(int ****)*local_d8" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*local_d8" * identifier))) ;) (expression_statement "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);" (assignment_expression "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4)" identifier = (call_expression "CONCAT44(local_d4._4_4_,(int ****)local_d4)" identifier (argument_list "(local_d4._4_4_,(int ****)local_d4)" ( (field_expression "local_d4._4_4_" identifier . field_identifier) , (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) )))) ;) (expression_statement "ppppiVar24 = (int ****)local_d8[-1];" (assignment_expression "ppppiVar24 = (int ****)local_d8[-1]" identifier = (cast_expression "(int ****)local_d8[-1]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_d8[-1]" identifier [ number_literal ]))) ;) (if_statement "if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }" if (parenthesized_expression "((int ****)local_d4 != ppppiVar24)" ( (binary_expression "(int ****)local_d4 != ppppiVar24" (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != identifier) )) (compound_statement "{\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }" { (if_statement "if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }" { (expression_statement "*(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;" (assignment_expression "*(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65" (pointer_expression "*(undefined ***)((int)piVar27 + -8)" * (cast_expression "(undefined ***)((int)piVar27 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_b8 + -0x3dd65" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = 0x6ed" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)ppuVar5 + -0xf7f6d" (cast_expression "(int)ppuVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;" (assignment_expression "*(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519" (pointer_expression "*(undefined1 **)((int)piVar27 + -0x14)" * (cast_expression "(undefined1 **)((int)piVar27 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_00161519" & identifier)) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);" (assignment_expression "iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" identifier = (pointer_expression "*(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" * (cast_expression "(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" ( (binary_expression "(int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c" (binary_expression "(int)local_ec * 0x20 + *(int *)(param_1 + 0x30)" (binary_expression "(int)local_ec * 0x20" (cast_expression "(int)local_ec" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar28 = (undefined1 *)piVar27;" (assignment_expression "puVar28 = (undefined1 *)piVar27" identifier = (cast_expression "(undefined1 *)piVar27" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }" if (parenthesized_expression "(iVar21 != 0 || iVar13 != 0)" ( (binary_expression "iVar21 != 0 || iVar13 != 0" (binary_expression "iVar21 != 0" identifier != number_literal) || (binary_expression "iVar13 != 0" identifier != number_literal)) )) (compound_statement "{\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }" { (expression_statement "iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;" (assignment_expression "iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24" identifier = (binary_expression "(int)(int ****)local_d4 - (int)ppppiVar24" (cast_expression "(int)(int ****)local_d4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) - (cast_expression "(int)ppppiVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_fc = iVar13;" (assignment_expression "local_fc = iVar13" identifier = identifier) ;) (expression_statement "local_f8 = iVar21;" (assignment_expression "local_f8 = iVar21" identifier = identifier) ;) (if_statement "if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }" if (parenthesized_expression "(0x7fffffc0 < iVar29)" ( (binary_expression "0x7fffffc0 < iVar29" number_literal < identifier) )) (compound_statement "{\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }" { (expression_statement "iVar29 = 0x1ffffff;" (assignment_expression "iVar29 = 0x1ffffff" identifier = number_literal) ;) (labeled_statement "LAB_001609ce:\n          local_100 = (int)local_e8;" statement_identifier : (expression_statement "local_100 = (int)local_e8;" (assignment_expression "local_100 = (int)local_e8" identifier = (cast_expression "(int)local_e8" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (labeled_statement "LAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;" statement_identifier : (expression_statement "*(uint ***)((int)piVar27 + -0xc) = local_e8;" (assignment_expression "*(uint ***)((int)piVar27 + -0xc) = local_e8" (pointer_expression "*(uint ***)((int)piVar27 + -0xc)" * (cast_expression "(uint ***)((int)piVar27 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6)" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" * (cast_expression "(int *****)((int)piVar27 + -0x10)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int ****)(iVar29 << 6)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar29 << 6)" ( (binary_expression "iVar29 << 6" identifier << number_literal) )))) ;) (expression_statement "local_b4 = (uint ***)(iVar29 << 6);" (assignment_expression "local_b4 = (uint ***)(iVar29 << 6)" identifier = (cast_expression "(uint ***)(iVar29 << 6)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar29 << 6)" ( (binary_expression "iVar29 << 6" identifier << number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160a08" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppppiVar17 = (int ****)FUN_001e51a0();" (assignment_expression "ppppiVar17 = (int ****)FUN_001e51a0()" identifier = (cast_expression "(int ****)FUN_001e51a0()" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_001e51a0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pppuVar22 = local_b4;" (assignment_expression "pppuVar22 = local_b4" identifier = identifier) ;) (if_statement "if (ppppiVar17 == (int ****)0x0) break;" if (parenthesized_expression "(ppppiVar17 == (int ****)0x0)" ( (binary_expression "ppppiVar17 == (int ****)0x0" identifier == (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_108 = (uint ***)(ppppiVar24 + 8);" (assignment_expression "local_108 = (uint ***)(ppppiVar24 + 8)" identifier = (cast_expression "(uint ***)(ppppiVar24 + 8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(ppppiVar24 + 8)" ( (binary_expression "ppppiVar24 + 8" identifier + number_literal) )))) ;) (expression_statement "local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);" (assignment_expression "local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4)" identifier = (cast_expression "(uint ***)((int)ppppiVar17 + (int)local_b4)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppppiVar17 + (int)local_b4)" ( (binary_expression "(int)ppppiVar17 + (int)local_b4" (cast_expression "(int)ppppiVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*ppppiVar17 = *ppppiVar24;" (assignment_expression "*ppppiVar17 = *ppppiVar24" (pointer_expression "*ppppiVar17" * identifier) = (pointer_expression "*ppppiVar24" * identifier)) ;) (expression_statement "ppppiVar17[1] = ppppiVar24[1];" (assignment_expression "ppppiVar17[1] = ppppiVar24[1]" (subscript_expression "ppppiVar17[1]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[1]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[2] = ppppiVar24[2];" (assignment_expression "ppppiVar17[2] = ppppiVar24[2]" (subscript_expression "ppppiVar17[2]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[2]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[3] = ppppiVar24[3];" (assignment_expression "ppppiVar17[3] = ppppiVar24[3]" (subscript_expression "ppppiVar17[3]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[3]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[4] = ppppiVar24[4];" (assignment_expression "ppppiVar17[4] = ppppiVar24[4]" (subscript_expression "ppppiVar17[4]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[4]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[5] = ppppiVar24[5];" (assignment_expression "ppppiVar17[5] = ppppiVar24[5]" (subscript_expression "ppppiVar17[5]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[5]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19 = ppppiVar17 + 8;" (assignment_expression "ppppiVar19 = ppppiVar17 + 8" identifier = (binary_expression "ppppiVar17 + 8" identifier + number_literal)) ;) (expression_statement "ppppiVar17[6] = (int ***)ppppiVar19;" (assignment_expression "ppppiVar17[6] = (int ***)ppppiVar19" (subscript_expression "ppppiVar17[6]" identifier [ number_literal ]) = (cast_expression "(int ***)ppppiVar19" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }" if (parenthesized_expression "((uint ***)ppppiVar24[6] == local_108)" ( (binary_expression "(uint ***)ppppiVar24[6] == local_108" (cast_expression "(uint ***)ppppiVar24[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "ppppiVar24[6]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }" { (expression_statement "ppppiVar17[8] = ppppiVar24[8];" (assignment_expression "ppppiVar17[8] = ppppiVar24[8]" (subscript_expression "ppppiVar17[8]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[8]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[9] = ppppiVar24[9];" (assignment_expression "ppppiVar17[9] = ppppiVar24[9]" (subscript_expression "ppppiVar17[9]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[9]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[10] = ppppiVar24[10];" (assignment_expression "ppppiVar17[10] = ppppiVar24[10]" (subscript_expression "ppppiVar17[10]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[10]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[0xb] = ppppiVar24[0xb];" (assignment_expression "ppppiVar17[0xb] = ppppiVar24[0xb]" (subscript_expression "ppppiVar17[0xb]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[0xb]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }" else (compound_statement "{\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }" { (expression_statement "ppppiVar17[6] = ppppiVar24[6];" (assignment_expression "ppppiVar17[6] = ppppiVar24[6]" (subscript_expression "ppppiVar17[6]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[6]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[8] = ppppiVar24[8];" (assignment_expression "ppppiVar17[8] = ppppiVar24[8]" (subscript_expression "ppppiVar17[8]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[8]" identifier [ number_literal ])) ;) }))) (expression_statement "pppiVar18 = ppppiVar24[0xd];" (assignment_expression "pppiVar18 = ppppiVar24[0xd]" identifier = (subscript_expression "ppppiVar24[0xd]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[7] = ppppiVar24[7];" (assignment_expression "ppppiVar17[7] = ppppiVar24[7]" (subscript_expression "ppppiVar17[7]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[7]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar24[7] = (int ***)0x0;" (assignment_expression "ppppiVar24[7] = (int ***)0x0" (subscript_expression "ppppiVar24[7]" identifier [ number_literal ]) = (cast_expression "(int ***)0x0" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "ppppiVar24[6] = (int ***)local_108;" (assignment_expression "ppppiVar24[6] = (int ***)local_108" (subscript_expression "ppppiVar24[6]" identifier [ number_literal ]) = (cast_expression "(int ***)local_108" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "pppiVar4 = ppppiVar24[0xc];" (assignment_expression "pppiVar4 = ppppiVar24[0xc]" identifier = (subscript_expression "ppppiVar24[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(ppppiVar24 + 8) = 0;" (assignment_expression "*(undefined1 *)(ppppiVar24 + 8) = 0" (pointer_expression "*(undefined1 *)(ppppiVar24 + 8)" * (cast_expression "(undefined1 *)(ppppiVar24 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppiVar24 + 8)" ( (binary_expression "ppppiVar24 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "ppppiVar17[0xd] = pppiVar18;" (assignment_expression "ppppiVar17[0xd] = pppiVar18" (subscript_expression "ppppiVar17[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppiVar18 = ppppiVar24[0xf];" (assignment_expression "pppiVar18 = ppppiVar24[0xf]" identifier = (subscript_expression "ppppiVar24[0xf]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[0xc] = pppiVar4;" (assignment_expression "ppppiVar17[0xc] = pppiVar4" (subscript_expression "ppppiVar17[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppiVar4 = ppppiVar24[0xe];" (assignment_expression "pppiVar4 = ppppiVar24[0xe]" identifier = (subscript_expression "ppppiVar24[0xe]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[0xf] = pppiVar18;" (assignment_expression "ppppiVar17[0xf] = pppiVar18" (subscript_expression "ppppiVar17[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppiVar17[0xe] = pppiVar4;" (assignment_expression "ppppiVar17[0xe] = pppiVar4" (subscript_expression "ppppiVar17[0xe]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }" if (parenthesized_expression "((int ****)local_b4 == ppppiVar17 + 0x10)" ( (binary_expression "(int ****)local_b4 == ppppiVar17 + 0x10" (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (binary_expression "ppppiVar17 + 0x10" identifier + number_literal)) )) (compound_statement "{\n            local_bc = (uint ***)ppppiVar17;\n          }" { (expression_statement "local_bc = (uint ***)ppppiVar17;" (assignment_expression "local_bc = (uint ***)ppppiVar17" identifier = (cast_expression "(uint ***)ppppiVar17" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) }) (else_clause "else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }" else (compound_statement "{\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }" { (expression_statement "local_118 = iVar29;" (assignment_expression "local_118 = iVar29" identifier = identifier) ;) (expression_statement "ppppiVar1 = (int ****)(pppuVar22 + -8);" (assignment_expression "ppppiVar1 = (int ****)(pppuVar22 + -8)" identifier = (cast_expression "(int ****)(pppuVar22 + -8)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(pppuVar22 + -8)" ( (binary_expression "pppuVar22 + -8" identifier + number_literal) )))) ;) (do_statement "do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));" do (compound_statement "{\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            }" { (expression_statement "ppppiVar19[8] = ppppiVar19[-8];" (assignment_expression "ppppiVar19[8] = ppppiVar19[-8]" (subscript_expression "ppppiVar19[8]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-8]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[9] = ppppiVar19[-7];" (assignment_expression "ppppiVar19[9] = ppppiVar19[-7]" (subscript_expression "ppppiVar19[9]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-7]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[10] = ppppiVar19[-6];" (assignment_expression "ppppiVar19[10] = ppppiVar19[-6]" (subscript_expression "ppppiVar19[10]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-6]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0xb] = ppppiVar19[-5];" (assignment_expression "ppppiVar19[0xb] = ppppiVar19[-5]" (subscript_expression "ppppiVar19[0xb]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-5]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0xc] = ppppiVar19[-4];" (assignment_expression "ppppiVar19[0xc] = ppppiVar19[-4]" (subscript_expression "ppppiVar19[0xc]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-4]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0xd] = ppppiVar19[-3];" (assignment_expression "ppppiVar19[0xd] = ppppiVar19[-3]" (subscript_expression "ppppiVar19[0xd]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-3]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar2 = ppppiVar19 + 0x10;" (assignment_expression "ppppiVar2 = ppppiVar19 + 0x10" identifier = (binary_expression "ppppiVar19 + 0x10" identifier + number_literal)) ;) (expression_statement "ppppiVar19[0xe] = (int ***)ppppiVar2;" (assignment_expression "ppppiVar19[0xe] = (int ***)ppppiVar2" (subscript_expression "ppppiVar19[0xe]" identifier [ number_literal ]) = (cast_expression "(int ***)ppppiVar2" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }" if (parenthesized_expression "(ppppiVar19 == (int ****)ppppiVar19[-2])" ( (binary_expression "ppppiVar19 == (int ****)ppppiVar19[-2]" identifier == (cast_expression "(int ****)ppppiVar19[-2]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppiVar19[-2]" identifier [ number_literal ]))) )) (compound_statement "{\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }" { (expression_statement "ppppiVar19[0x10] = *ppppiVar19;" (assignment_expression "ppppiVar19[0x10] = *ppppiVar19" (subscript_expression "ppppiVar19[0x10]" identifier [ number_literal ]) = (pointer_expression "*ppppiVar19" * identifier)) ;) (expression_statement "ppppiVar19[0x11] = ppppiVar19[1];" (assignment_expression "ppppiVar19[0x11] = ppppiVar19[1]" (subscript_expression "ppppiVar19[0x11]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[1]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0x12] = ppppiVar19[2];" (assignment_expression "ppppiVar19[0x12] = ppppiVar19[2]" (subscript_expression "ppppiVar19[0x12]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[2]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0x13] = ppppiVar19[3];" (assignment_expression "ppppiVar19[0x13] = ppppiVar19[3]" (subscript_expression "ppppiVar19[0x13]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }" else (compound_statement "{\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }" { (expression_statement "ppppiVar19[0xe] = ppppiVar19[-2];" (assignment_expression "ppppiVar19[0xe] = ppppiVar19[-2]" (subscript_expression "ppppiVar19[0xe]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-2]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0x10] = *ppppiVar19;" (assignment_expression "ppppiVar19[0x10] = *ppppiVar19" (subscript_expression "ppppiVar19[0x10]" identifier [ number_literal ]) = (pointer_expression "*ppppiVar19" * identifier)) ;) }))) (expression_statement "pppiVar18 = ppppiVar19[-1];" (assignment_expression "pppiVar18 = ppppiVar19[-1]" identifier = (subscript_expression "ppppiVar19[-1]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[-2] = (int ***)ppppiVar19;" (assignment_expression "ppppiVar19[-2] = (int ***)ppppiVar19" (subscript_expression "ppppiVar19[-2]" identifier [ number_literal ]) = (cast_expression "(int ***)ppppiVar19" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "ppppiVar19[-1] = (int ***)0x0;" (assignment_expression "ppppiVar19[-1] = (int ***)0x0" (subscript_expression "ppppiVar19[-1]" identifier [ number_literal ]) = (cast_expression "(int ***)0x0" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "ppppiVar19[0xf] = pppiVar18;" (assignment_expression "ppppiVar19[0xf] = pppiVar18" (subscript_expression "ppppiVar19[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppiVar19[0x15] = ppppiVar19[5];" (assignment_expression "ppppiVar19[0x15] = ppppiVar19[5]" (subscript_expression "ppppiVar19[0x15]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[5]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0x14] = ppppiVar19[4];" (assignment_expression "ppppiVar19[0x14] = ppppiVar19[4]" (subscript_expression "ppppiVar19[0x14]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)ppppiVar19 = 0;" (assignment_expression "*(undefined1 *)ppppiVar19 = 0" (pointer_expression "*(undefined1 *)ppppiVar19" * (cast_expression "(undefined1 *)ppppiVar19" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "ppppiVar19[0x16] = ppppiVar19[6];" (assignment_expression "ppppiVar19[0x16] = ppppiVar19[6]" (subscript_expression "ppppiVar19[0x16]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[6]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0x17] = ppppiVar19[7];" (assignment_expression "ppppiVar19[0x17] = ppppiVar19[7]" (subscript_expression "ppppiVar19[0x17]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[7]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19 = ppppiVar2;" (assignment_expression "ppppiVar19 = ppppiVar2" identifier = identifier) ;) }) while (parenthesized_expression "(ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17))" ( (binary_expression "ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17)" identifier != (cast_expression "(int ****)((int)ppppiVar1 + (int)ppppiVar17)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppiVar1 + (int)ppppiVar17)" ( (binary_expression "(int)ppppiVar1 + (int)ppppiVar17" (cast_expression "(int)ppppiVar1" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppiVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) ;) (expression_statement "local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);" (assignment_expression "local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10)" identifier = (cast_expression "(uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10)" ( (binary_expression "ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10" identifier + (binary_expression "(((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10" (parenthesized_expression "(((uint)(pppuVar22 + -0x20) >> 6) + 1)" ( (binary_expression "((uint)(pppuVar22 + -0x20) >> 6) + 1" (parenthesized_expression "((uint)(pppuVar22 + -0x20) >> 6)" ( (binary_expression "(uint)(pppuVar22 + -0x20) >> 6" (call_expression "(uint)(pppuVar22 + -0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pppuVar22 + -0x20)" ( (binary_expression "pppuVar22 + -0x20" identifier + number_literal) ))) >> number_literal) )) + number_literal) )) * number_literal)) )))) ;) (expression_statement "ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);" (assignment_expression "ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17)" identifier = (cast_expression "(int ****)((int)ppppiVar1 + (int)ppppiVar17)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppiVar1 + (int)ppppiVar17)" ( (binary_expression "(int)ppppiVar1 + (int)ppppiVar17" (cast_expression "(int)ppppiVar1" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppiVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (expression_statement "*ppppiVar24 = (int ***)*local_bc;" (assignment_expression "*ppppiVar24 = (int ***)*local_bc" (pointer_expression "*ppppiVar24" * identifier) = (cast_expression "(int ***)*local_bc" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*local_bc" * identifier))) ;) (expression_statement "ppppiVar24[1] = (int ***)local_bc[1];" (assignment_expression "ppppiVar24[1] = (int ***)local_bc[1]" (subscript_expression "ppppiVar24[1]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[1]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[1]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[2] = (int ***)local_bc[2];" (assignment_expression "ppppiVar24[2] = (int ***)local_bc[2]" (subscript_expression "ppppiVar24[2]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[2]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[2]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[3] = (int ***)local_bc[3];" (assignment_expression "ppppiVar24[3] = (int ***)local_bc[3]" (subscript_expression "ppppiVar24[3]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[3]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[3]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[4] = (int ***)local_bc[4];" (assignment_expression "ppppiVar24[4] = (int ***)local_bc[4]" (subscript_expression "ppppiVar24[4]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[4]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[4]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[5] = (int ***)local_bc[5];" (assignment_expression "ppppiVar24[5] = (int ***)local_bc[5]" (subscript_expression "ppppiVar24[5]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[5]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[5]" identifier [ number_literal ]))) ;) (expression_statement "local_104 = (uint ***)ppppiVar24[6];" (assignment_expression "local_104 = (uint ***)ppppiVar24[6]" identifier = (cast_expression "(uint ***)ppppiVar24[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "ppppiVar24[6]" identifier [ number_literal ]))) ;) (expression_statement "local_10c = (uint ***)local_bc[6];" (assignment_expression "local_10c = (uint ***)local_bc[6]" identifier = (cast_expression "(uint ***)local_bc[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[6]" identifier [ number_literal ]))) ;) (if_statement "if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }" if (parenthesized_expression "(ppppiVar19 == (int ****)local_10c)" ( (binary_expression "ppppiVar19 == (int ****)local_10c" identifier == (cast_expression "(int ****)local_10c" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) (compound_statement "{\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }" { (expression_statement "pppiVar18 = (int ***)local_bc[7];" (assignment_expression "pppiVar18 = (int ***)local_bc[7]" identifier = (cast_expression "(int ***)local_bc[7]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[7]" identifier [ number_literal ]))) ;) (if_statement "if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }" if (parenthesized_expression "(pppiVar18 != (int ***)0x0)" ( (binary_expression "pppiVar18 != (int ***)0x0" identifier != (cast_expression "(int ***)0x0" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }" { (if_statement "if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }" if (parenthesized_expression "(pppiVar18 == (int ***)0x1)" ( (binary_expression "pppiVar18 == (int ***)0x1" identifier == (cast_expression "(int ***)0x1" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }" { (expression_statement "*(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);" (assignment_expression "*(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8)" (pointer_expression "*(undefined1 *)local_104" * (cast_expression "(undefined1 *)local_104" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)(local_bc + 8)" * (cast_expression "(undefined1 *)(local_bc + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 8)" ( (binary_expression "local_bc + 8" identifier + number_literal) ))))) ;) (expression_statement "local_104 = (uint ***)ppppiVar24[6];" (assignment_expression "local_104 = (uint ***)ppppiVar24[6]" identifier = (cast_expression "(uint ***)ppppiVar24[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "ppppiVar24[6]" identifier [ number_literal ]))) ;) (expression_statement "pppiVar18 = (int ***)local_bc[7];" (assignment_expression "pppiVar18 = (int ***)local_bc[7]" identifier = (cast_expression "(int ***)local_bc[7]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[7]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }" else (compound_statement "{\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }" { (expression_statement "local_108 = (uint ***)ppppiVar24;" (assignment_expression "local_108 = (uint ***)ppppiVar24" identifier = (cast_expression "(uint ***)ppppiVar24" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "*(int ****)((int)piVar27 + -8) = pppiVar18;" (assignment_expression "*(int ****)((int)piVar27 + -8) = pppiVar18" (pointer_expression "*(int ****)((int)piVar27 + -8)" * (cast_expression "(int ****)((int)piVar27 + -8)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0xc) = ppppiVar19;" (assignment_expression "*(int *****)((int)piVar27 + -0xc) = ppppiVar19" (pointer_expression "*(int *****)((int)piVar27 + -0xc)" * (cast_expression "(int *****)((int)piVar27 + -0xc)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_104;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_104" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" * (cast_expression "(uint ****)((int)piVar27 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16134b" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));" (call_expression "memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8))" identifier (argument_list "(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8))" ( (pointer_expression "*(void **)((int)piVar27 + -0x10)" * (cast_expression "(void **)((int)piVar27 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)piVar27 + -0xc)" * (cast_expression "(void **)((int)piVar27 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)piVar27 + -8)" * (cast_expression "(size_t *)((int)piVar27 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pppiVar18 = (int ***)local_bc[7];" (assignment_expression "pppiVar18 = (int ***)local_bc[7]" identifier = (cast_expression "(int ***)local_bc[7]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[7]" identifier [ number_literal ]))) ;) (expression_statement "local_104 = (uint ***)local_108[6];" (assignment_expression "local_104 = (uint ***)local_108[6]" identifier = (cast_expression "(uint ***)local_108[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_108[6]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24 = (int ****)local_108;" (assignment_expression "ppppiVar24 = (int ****)local_108" identifier = (cast_expression "(int ****)local_108" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }))) })) (expression_statement "ppppiVar24[7] = pppiVar18;" (assignment_expression "ppppiVar24[7] = pppiVar18" (subscript_expression "ppppiVar24[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;" (assignment_expression "*(undefined1 *)((int)local_104 + (int)pppiVar18) = 0" (pointer_expression "*(undefined1 *)((int)local_104 + (int)pppiVar18)" * (cast_expression "(undefined1 *)((int)local_104 + (int)pppiVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_104 + (int)pppiVar18)" ( (binary_expression "(int)local_104 + (int)pppiVar18" (cast_expression "(int)local_104" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppiVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "local_104 = (uint ***)local_bc[6];" (assignment_expression "local_104 = (uint ***)local_bc[6]" identifier = (cast_expression "(uint ***)local_bc[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }" else (compound_statement "{\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }" { (if_statement "if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }" if (parenthesized_expression "(local_108 == local_104)" ( (binary_expression "local_108 == local_104" identifier == identifier) )) (compound_statement "{\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }" { (expression_statement "ppppiVar24[6] = (int ***)local_10c;" (assignment_expression "ppppiVar24[6] = (int ***)local_10c" (subscript_expression "ppppiVar24[6]" identifier [ number_literal ]) = (cast_expression "(int ***)local_10c" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "ppppiVar24[7] = (int ***)local_bc[7];" (assignment_expression "ppppiVar24[7] = (int ***)local_bc[7]" (subscript_expression "ppppiVar24[7]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[7]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[7]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[8] = (int ***)local_bc[8];" (assignment_expression "ppppiVar24[8] = (int ***)local_bc[8]" (subscript_expression "ppppiVar24[8]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[8]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[8]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }" else (compound_statement "{\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }" { (expression_statement "local_108 = (uint ***)ppppiVar24[8];" (assignment_expression "local_108 = (uint ***)ppppiVar24[8]" identifier = (cast_expression "(uint ***)ppppiVar24[8]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "ppppiVar24[8]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[6] = (int ***)local_10c;" (assignment_expression "ppppiVar24[6] = (int ***)local_10c" (subscript_expression "ppppiVar24[6]" identifier [ number_literal ]) = (cast_expression "(int ***)local_10c" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "ppppiVar24[7] = (int ***)local_bc[7];" (assignment_expression "ppppiVar24[7] = (int ***)local_bc[7]" (subscript_expression "ppppiVar24[7]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[7]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[7]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[8] = (int ***)local_bc[8];" (assignment_expression "ppppiVar24[8] = (int ***)local_bc[8]" (subscript_expression "ppppiVar24[8]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[8]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[8]" identifier [ number_literal ]))) ;) (if_statement "if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }" if (parenthesized_expression "((int ****)local_104 != (int ****)0x0)" ( (binary_expression "(int ****)local_104 != (int ****)0x0" (cast_expression "(int ****)local_104" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }" { (expression_statement "local_bc[6] = (uint **)local_104;" (assignment_expression "local_bc[6] = (uint **)local_104" (subscript_expression "local_bc[6]" identifier [ number_literal ]) = (cast_expression "(uint **)local_104" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "local_bc[8] = (uint **)local_108;" (assignment_expression "local_bc[8] = (uint **)local_108" (subscript_expression "local_bc[8]" identifier [ number_literal ]) = (cast_expression "(uint **)local_108" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (goto_statement "goto LAB_001611b8;" goto statement_identifier ;) })) }))) (expression_statement "local_bc[6] = (uint **)ppppiVar19;" (assignment_expression "local_bc[6] = (uint **)ppppiVar19" (subscript_expression "local_bc[6]" identifier [ number_literal ]) = (cast_expression "(uint **)ppppiVar19" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "local_104 = (uint ***)ppppiVar19;" (assignment_expression "local_104 = (uint ***)ppppiVar19" identifier = (cast_expression "(uint ***)ppppiVar19" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) }))) (labeled_statement "LAB_001611b8:\n          local_bc[7] = (uint **)0x0;" statement_identifier : (expression_statement "local_bc[7] = (uint **)0x0;" (assignment_expression "local_bc[7] = (uint **)0x0" (subscript_expression "local_bc[7]" identifier [ number_literal ]) = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "*(undefined1 *)local_104 = 0;" (assignment_expression "*(undefined1 *)local_104 = 0" (pointer_expression "*(undefined1 *)local_104" * (cast_expression "(undefined1 *)local_104" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pppiVar18 = (int ***)local_bc[0xd];" (assignment_expression "pppiVar18 = (int ***)local_bc[0xd]" identifier = (cast_expression "(int ***)local_bc[0xd]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[0xd]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[0xc] = (int ***)local_bc[0xc];" (assignment_expression "ppppiVar24[0xc] = (int ***)local_bc[0xc]" (subscript_expression "ppppiVar24[0xc]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[0xc]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[0xc]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[0xd] = pppiVar18;" (assignment_expression "ppppiVar24[0xd] = pppiVar18" (subscript_expression "ppppiVar24[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppiVar18 = (int ***)local_bc[0xe];" (assignment_expression "pppiVar18 = (int ***)local_bc[0xe]" identifier = (cast_expression "(int ***)local_bc[0xe]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[0xe]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[0xf] = (int ***)local_bc[0xf];" (assignment_expression "ppppiVar24[0xf] = (int ***)local_bc[0xf]" (subscript_expression "ppppiVar24[0xf]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[0xf]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[0xf]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[0xe] = pppiVar18;" (assignment_expression "ppppiVar24[0xe] = pppiVar18" (subscript_expression "ppppiVar24[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int *)((int)piVar27 + -0xc) = local_f8;" (assignment_expression "*(int *)((int)piVar27 + -0xc) = local_f8" (pointer_expression "*(int *)((int)piVar27 + -0xc)" * (cast_expression "(int *)((int)piVar27 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar27 + -0x10) = local_fc;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = local_fc" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar27 + -0x14) = iVar29;" (assignment_expression "*(int *)((int)piVar27 + -0x14) = iVar29" (pointer_expression "*(int *)((int)piVar27 + -0x14)" * (cast_expression "(int *)((int)piVar27 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x18) = ppppiVar17;" (assignment_expression "*(int *****)((int)piVar27 + -0x18) = ppppiVar17" (pointer_expression "*(int *****)((int)piVar27 + -0x18)" * (cast_expression "(int *****)((int)piVar27 + -0x18)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;" (assignment_expression "*(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4" (pointer_expression "*(int *****)((int)piVar27 + -0x1c)" * (cast_expression "(int *****)((int)piVar27 + -0x1c)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x1c)" ( (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "*(int *****)((int)piVar27 + -0x20) = ppppiVar24;" (assignment_expression "*(int *****)((int)piVar27 + -0x20) = ppppiVar24" (pointer_expression "*(int *****)((int)piVar27 + -0x20)" * (cast_expression "(int *****)((int)piVar27 + -0x20)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x20)" ( (binary_expression "(int)piVar27 + -0x20" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x24) = 0x161203;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x24) = 0x161203" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x24)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x24)" ( (binary_expression "(int)piVar27 + -0x24" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00167d90();" (call_expression "FUN_00167d90()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00160b99;" goto statement_identifier ;) })) (if_statement "if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }" if (parenthesized_expression "(0 < iVar29)" ( (binary_expression "0 < iVar29" number_literal < identifier) )) (compound_statement "{\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }" { (expression_statement "iVar29 = iVar29 >> 6;" (assignment_expression "iVar29 = iVar29 >> 6" identifier = (binary_expression "iVar29 >> 6" identifier >> number_literal)) ;) (goto_statement "goto LAB_001609ce;" goto statement_identifier ;) })) (expression_statement "local_100 = local_11c;" (assignment_expression "local_100 = local_11c" identifier = identifier) ;) (labeled_statement "LAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;" statement_identifier : (expression_statement "*(int *)((int)piVar27 + -4) = local_f8;" (assignment_expression "*(int *)((int)piVar27 + -4) = local_f8" (pointer_expression "*(int *)((int)piVar27 + -4)" * (cast_expression "(int *)((int)piVar27 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -4)" ( (binary_expression "(int)piVar27 + -4" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)piVar27 + -8) = local_fc;" (assignment_expression "*(int *)((int)piVar27 + -8) = local_fc" (pointer_expression "*(int *)((int)piVar27 + -8)" * (cast_expression "(int *)((int)piVar27 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;" (assignment_expression "*(int *****)((int)piVar27 + -0xc) = (int ****)local_d4" (pointer_expression "*(int *****)((int)piVar27 + -0xc)" * (cast_expression "(int *****)((int)piVar27 + -0xc)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "*(int *****)((int)piVar27 + -0x10) = ppppiVar24;" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = ppppiVar24" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" * (cast_expression "(int *****)((int)piVar27 + -0x10)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00165ca0();" (call_expression "FUN_00165ca0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_b4 = (uint ***)0x0;" (assignment_expression "local_b4 = (uint ***)0x0" identifier = (cast_expression "(uint ***)0x0" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "ppppiVar17 = (int ****)0x0;" (assignment_expression "ppppiVar17 = (int ****)0x0" identifier = (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (labeled_statement "LAB_00160b99:\n        ppppiVar24 = ppppiVar17;" statement_identifier : (expression_statement "ppppiVar24 = ppppiVar17;" (assignment_expression "ppppiVar24 = ppppiVar17" identifier = identifier) ;)) (if_statement "if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }" if (parenthesized_expression "((int ****)local_b4 != ppppiVar17)" ( (binary_expression "(int ****)local_b4 != ppppiVar17" (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != identifier) )) (compound_statement "{\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }" { (do_statement "do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);" do (compound_statement "{\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          }" { (if_statement "if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }" if (parenthesized_expression "((int ****)ppppiVar24[6] != ppppiVar24 + 8)" ( (binary_expression "(int ****)ppppiVar24[6] != ppppiVar24 + 8" (cast_expression "(int ****)ppppiVar24[6]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppiVar24[6]" identifier [ number_literal ])) != (binary_expression "ppppiVar24 + 8" identifier + number_literal)) )) (compound_statement "{\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }" { (expression_statement "*(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];" (assignment_expression "*(int ****)((int)piVar27 + -0x10) = ppppiVar24[6]" (pointer_expression "*(int ****)((int)piVar27 + -0x10)" * (cast_expression "(int ****)((int)piVar27 + -0x10)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "ppppiVar24[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppppiVar24 = ppppiVar24 + 0x10;" (assignment_expression "ppppiVar24 = ppppiVar24 + 0x10" identifier = (binary_expression "ppppiVar24 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "((int ****)local_b4 != ppppiVar24)" ( (binary_expression "(int ****)local_b4 != ppppiVar24" (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != identifier) )) ;) })) (expression_statement "*(int *)((int)piVar27 + -0xc) = local_100;" (assignment_expression "*(int *)((int)piVar27 + -0xc) = local_100" (pointer_expression "*(int *)((int)piVar27 + -0xc)" * (cast_expression "(int *)((int)piVar27 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x10) = ppppiVar17;" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = ppppiVar17" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" * (cast_expression "(int *****)((int)piVar27 + -0x10)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160be4" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6d70();" (call_expression "FUN_001e6d70()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);" (assignment_expression "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4)" identifier = (call_expression "CONCAT44(local_d4._4_4_,(int ****)local_d4)" identifier (argument_list "(local_d4._4_4_,(int ****)local_d4)" ( (field_expression "local_d4._4_4_" identifier . field_identifier) , (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) )))) ;) (expression_statement "ppppiVar24 = (int ****)local_d8[-1];" (assignment_expression "ppppiVar24 = (int ****)local_d8[-1]" identifier = (cast_expression "(int ****)local_d8[-1]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_d8[-1]" identifier [ number_literal ]))) ;) (if_statement "if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;" if (parenthesized_expression "((int ****)local_d8[-1] == (int ****)*local_d8)" ( (binary_expression "(int ****)local_d8[-1] == (int ****)*local_d8" (cast_expression "(int ****)local_d8[-1]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_d8[-1]" identifier [ number_literal ])) == (cast_expression "(int ****)*local_d8" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*local_d8" * identifier))) )) (goto_statement "goto LAB_00160c00;" goto statement_identifier ;)) })) (do_statement "do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);" do (compound_statement "{\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      }" { (expression_statement "local_b4 = (uint ***)ppppiVar24;" (assignment_expression "local_b4 = (uint ***)ppppiVar24" identifier = (cast_expression "(uint ***)ppppiVar24" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_74 = (int ***)*local_b4;" (assignment_expression "local_74 = (int ***)*local_b4" identifier = (cast_expression "(int ***)*local_b4" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*local_b4" * identifier))) ;) (expression_statement "local_70 = local_b4[1];" (assignment_expression "local_70 = local_b4[1]" identifier = (subscript_expression "local_b4[1]" identifier [ number_literal ])) ;) (expression_statement "local_6c = local_b4[2];" (assignment_expression "local_6c = local_b4[2]" identifier = (subscript_expression "local_b4[2]" identifier [ number_literal ])) ;) (expression_statement "local_68 = local_b4[3];" (assignment_expression "local_68 = local_b4[3]" identifier = (subscript_expression "local_b4[3]" identifier [ number_literal ])) ;) (expression_statement "local_64 = local_b4[4];" (assignment_expression "local_64 = local_b4[4]" identifier = (subscript_expression "local_b4[4]" identifier [ number_literal ])) ;) (expression_statement "local_60 = local_b4[5];" (assignment_expression "local_60 = local_b4[5]" identifier = (subscript_expression "local_b4[5]" identifier [ number_literal ])) ;) (expression_statement "piVar27 = (int *)puVar28;" (assignment_expression "piVar27 = (int *)puVar28" identifier = (cast_expression "(int *)puVar28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }" if (parenthesized_expression "((int ***)local_70 == (int ***)0x0)" ( (binary_expression "(int ***)local_70 == (int ***)0x0" (cast_expression "(int ***)local_70" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) == (cast_expression "(int ***)0x0" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }" { (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (if_statement "if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }" if (parenthesized_expression "((uint ***)0xfffffffb < local_74)" ( (binary_expression "(uint ***)0xfffffffb < local_74" (cast_expression "(uint ***)0xfffffffb" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal) < identifier) )) (compound_statement "{\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }" { (expression_statement "ppuVar5 = (undefined **)(*local_64)[3];" (assignment_expression "ppuVar5 = (undefined **)(*local_64)[3]" identifier = (cast_expression "(undefined **)(*local_64)[3]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "(*local_64)[3]" (parenthesized_expression "(*local_64)" ( (pointer_expression "*local_64" * identifier) )) [ number_literal ]))) ;) (if_statement "if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }" if (parenthesized_expression "(ppuVar5 != local_b8 + -0xc6e88)" ( (binary_expression "ppuVar5 != local_b8 + -0xc6e88" identifier != (binary_expression "local_b8 + -0xc6e88" identifier + number_literal)) )) (compound_statement "{\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }" { (expression_statement "*(uint ***)(puVar28 + -0x10) = local_64;" (assignment_expression "*(uint ***)(puVar28 + -0x10) = local_64" (pointer_expression "*(uint ***)(puVar28 + -0x10)" * (cast_expression "(uint ***)(puVar28 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x161066;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x161066" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar31 = (*(code *)ppuVar5)();" (assignment_expression "lVar31 = (*(code *)ppuVar5)()" identifier = (call_expression "(*(code *)ppuVar5)()" (parenthesized_expression "(*(code *)ppuVar5)" ( (pointer_expression "*(code *)ppuVar5" * (cast_expression "(code *)ppuVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) (goto_statement "goto LAB_00160fa4;" goto statement_identifier ;) })) (expression_statement "lVar31 = *(longlong *)((int ***)local_64 + 9);" (assignment_expression "lVar31 = *(longlong *)((int ***)local_64 + 9)" identifier = (pointer_expression "*(longlong *)((int ***)local_64 + 9)" * (cast_expression "(longlong *)((int ***)local_64 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int ***)local_64 + 9)" ( (binary_expression "(int ***)local_64 + 9" (cast_expression "(int ***)local_64" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_00160dde;" goto statement_identifier ;) })) (expression_statement "local_bc = (uint ***)&local_74;" (assignment_expression "local_bc = (uint ***)&local_74" identifier = (cast_expression "(uint ***)&local_74" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&local_74" & identifier))) ;) (expression_statement "*(uint ****)(puVar28 + -0x10) = local_bc;" (assignment_expression "*(uint ****)(puVar28 + -0x10) = local_bc" (pointer_expression "*(uint ****)(puVar28 + -0x10)" * (cast_expression "(uint ****)(puVar28 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160fd8;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160fd8" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar30 = FUN_000ede20();" (assignment_expression "lVar30 = FUN_000ede20()" identifier = (call_expression "FUN_000ede20()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" identifier = identifier) ;) (expression_statement "lVar10 = local_cc;" (assignment_expression "lVar10 = local_cc" identifier = identifier) ;) (if_statement "if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;" if (parenthesized_expression "(local_e0 != 0 || local_e4 != 0)" ( (binary_expression "local_e0 != 0 || local_e4 != 0" (binary_expression "local_e0 != 0" identifier != number_literal) || (binary_expression "local_e4 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_00160ffd;" goto statement_identifier ;)) }) (else_clause "else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }" else (compound_statement "{\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }" { (expression_statement "uVar25 = (int)local_70 - 1U >> 5 & 1;" (assignment_expression "uVar25 = (int)local_70 - 1U >> 5 & 1" identifier = (binary_expression "(int)local_70 - 1U >> 5 & 1" (binary_expression "(int)local_70 - 1U >> 5" (binary_expression "(int)local_70 - 1U" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) >> number_literal) & number_literal)) ;) (expression_statement "bVar20 = (byte)((int)local_70 - 1U);" (assignment_expression "bVar20 = (byte)((int)local_70 - 1U)" identifier = (call_expression "(byte)((int)local_70 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((int)local_70 - 1U)" ( (binary_expression "(int)local_70 - 1U" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));" (assignment_expression "lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f))" identifier = (call_expression "CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f))" identifier (argument_list "(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f))" ( (binary_expression "uVar25 << (bVar20 & 0x1f)" identifier << (parenthesized_expression "(bVar20 & 0x1f)" ( (binary_expression "bVar20 & 0x1f" identifier & number_literal) ))) , (binary_expression "(uVar25 ^ 1) << (bVar20 & 0x1f)" (parenthesized_expression "(uVar25 ^ 1)" ( (binary_expression "uVar25 ^ 1" identifier ^ number_literal) )) << (parenthesized_expression "(bVar20 & 0x1f)" ( (binary_expression "bVar20 & 0x1f" identifier & number_literal) ))) )))) ;) (labeled_statement "LAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }" statement_identifier : (if_statement "if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }" if (parenthesized_expression "((uint ***)0xfffffffb < local_74)" ( (binary_expression "(uint ***)0xfffffffb < local_74" (cast_expression "(uint ***)0xfffffffb" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal) < identifier) )) (compound_statement "{\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }" { (labeled_statement "LAB_00160dde:\n            ppuVar11 = local_64;" statement_identifier : (expression_statement "ppuVar11 = local_64;" (assignment_expression "ppuVar11 = local_64" identifier = identifier) ;)) (if_statement "if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }" if (parenthesized_expression "(((uint)local_64[7] & 2) == 0)" ( (binary_expression "((uint)local_64[7] & 2) == 0" (parenthesized_expression "((uint)local_64[7] & 2)" ( (binary_expression "(uint)local_64[7] & 2" (cast_expression "(uint)local_64[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_64[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }" { (expression_statement "ppiVar6 = (int **)*local_64;" (assignment_expression "ppiVar6 = (int **)*local_64" identifier = (cast_expression "(int **)*local_64" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_64" * identifier))) ;) (expression_statement "*(uint ***)(puVar28 + -0x10) = local_64;" (assignment_expression "*(uint ***)(puVar28 + -0x10) = local_64" (pointer_expression "*(uint ***)(puVar28 + -0x10)" * (cast_expression "(uint ***)(puVar28 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = (code *)ppiVar6[0xe];" (assignment_expression "pcVar3 = (code *)ppiVar6[0xe]" identifier = (cast_expression "(code *)ppiVar6[0xe]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar6[0xe]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160ded;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160ded" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) (if_statement "if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }" if (parenthesized_expression "(((uint)ppuVar11[7] & 2) == 0)" ( (binary_expression "((uint)ppuVar11[7] & 2) == 0" (parenthesized_expression "((uint)ppuVar11[7] & 2)" ( (binary_expression "(uint)ppuVar11[7] & 2" (cast_expression "(uint)ppuVar11[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar11[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }" { (expression_statement "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;" (assignment_expression "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a" (pointer_expression "*(undefined ***)(puVar28 + -8)" * (cast_expression "(undefined ***)(puVar28 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -8)" ( (binary_expression "puVar28 + -8" identifier + number_literal) )))) = (binary_expression "local_b8 + -0x3dd6a" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0xc) = 0x163;" (assignment_expression "*(undefined4 *)(puVar28 + -0xc) = 0x163" (pointer_expression "*(undefined4 *)(puVar28 + -0xc)" * (cast_expression "(undefined4 *)(puVar28 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;" (assignment_expression "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55" (pointer_expression "*(undefined ***)(puVar28 + -0x10)" * (cast_expression "(undefined ***)(puVar28 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = (binary_expression "local_b8 + -0x41c55" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x1614f8;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x1614f8" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) })) }))) (expression_statement "local_bc = (uint ***)&local_74;" (assignment_expression "local_bc = (uint ***)&local_74" identifier = (cast_expression "(uint ***)&local_74" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&local_74" & identifier))) ;) (expression_statement "*(uint ****)(puVar28 + -0x10) = local_bc;" (assignment_expression "*(uint ****)(puVar28 + -0x10) = local_bc" (pointer_expression "*(uint ****)(puVar28 + -0x10)" * (cast_expression "(uint ****)(puVar28 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160e12;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160e12" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "lVar30 = FUN_000ede20();" (assignment_expression "lVar30 = FUN_000ede20()" identifier = (call_expression "FUN_000ede20()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }" if (parenthesized_expression "(local_e0 == 0 && local_e4 == 0)" ( (binary_expression "local_e0 == 0 && local_e4 == 0" (binary_expression "local_e0 == 0" identifier == number_literal) && (binary_expression "local_e4 == 0" identifier == number_literal)) )) (compound_statement "{\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }" { (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" identifier = identifier) ;) (expression_statement "lVar10 = local_cc;" (assignment_expression "lVar10 = local_cc" identifier = identifier) ;) (if_statement "if (lVar31 == 0) goto LAB_00160d28;" if (parenthesized_expression "(lVar31 == 0)" ( (binary_expression "lVar31 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00160d28;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }" else (compound_statement "{\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }" { (labeled_statement "LAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);" statement_identifier : (expression_statement "lVar31 = CONCAT44(local_e0,local_e4);" (assignment_expression "lVar31 = CONCAT44(local_e0,local_e4)" identifier = (call_expression "CONCAT44(local_e0,local_e4)" identifier (argument_list "(local_e0,local_e4)" ( identifier , identifier )))) ;)) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (if_statement "if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }" if (parenthesized_expression "(local_f0 != 0)" ( (binary_expression "local_f0 != 0" identifier != number_literal) )) (compound_statement "{\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }" { (expression_statement "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;" (assignment_expression "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e" (pointer_expression "*(undefined ***)(puVar28 + -8)" * (cast_expression "(undefined ***)(puVar28 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -8)" ( (binary_expression "puVar28 + -8" identifier + number_literal) )))) = (binary_expression "local_b8 + -0x3dd6e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0xc) = 0xedf;" (assignment_expression "*(undefined4 *)(puVar28 + -0xc) = 0xedf" (pointer_expression "*(undefined4 *)(puVar28 + -0xc)" * (cast_expression "(undefined4 *)(puVar28 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;" (assignment_expression "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55" (pointer_expression "*(undefined ***)(puVar28 + -0x10)" * (cast_expression "(undefined ***)(puVar28 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = (binary_expression "local_b8 + -0x41c55" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x1614d7;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x1614d7" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint *)(puVar28 + -0xc) = local_e0;" (assignment_expression "*(uint *)(puVar28 + -0xc) = local_e0" (pointer_expression "*(uint *)(puVar28 + -0xc)" * (cast_expression "(uint *)(puVar28 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar28 + -0x10) = local_e4;" (assignment_expression "*(uint *)(puVar28 + -0x10) = local_e4" (pointer_expression "*(uint *)(puVar28 + -0x10)" * (cast_expression "(uint *)(puVar28 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x161027;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x161027" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_70 = (uint **)FUN_0027b5b0();" (assignment_expression "local_70 = (uint **)FUN_0027b5b0()" identifier = (cast_expression "(uint **)FUN_0027b5b0()" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_0027b5b0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" identifier = identifier) ;) }))) (expression_statement "local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);" (assignment_expression "local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20)" (field_expression "local_cc._4_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)lVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar9 >> 0x20)" ( (binary_expression "(ulonglong)lVar9 >> 0x20" (cast_expression "(ulonglong)lVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_cc._0_4_ = (uint)lVar9;" (assignment_expression "local_cc._0_4_ = (uint)lVar9" (field_expression "local_cc._0_4_" identifier . field_identifier) = (cast_expression "(uint)lVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar30 = lVar31 + lVar9 + -1;" (assignment_expression "lVar30 = lVar31 + lVar9 + -1" identifier = (binary_expression "lVar31 + lVar9 + -1" (binary_expression "lVar31 + lVar9" identifier + identifier) + number_literal)) ;) (expression_statement "local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;" (assignment_expression "local_c4._0_4_ = (uint)lVar30 & -(int)lVar31" (field_expression "local_c4._0_4_" identifier . field_identifier) = (binary_expression "(uint)lVar30 & -(int)lVar31" (cast_expression "(uint)lVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar31" - (cast_expression "(int)lVar31" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));" (assignment_expression "local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (field_expression "local_c4._4_4_" identifier . field_identifier) = (binary_expression "(uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (call_expression "(uint)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" ( (binary_expression "(int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)" (cast_expression "(int)((ulonglong)lVar31 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)((int)lVar31 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar31 != 0)" ( (binary_expression "(int)lVar31 != 0" (cast_expression "(int)lVar31" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) ))))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) (expression_statement "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier = (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier (argument_list "(local_c4._4_4_,(uint)local_c4)" ( (field_expression "local_c4._4_4_" identifier . field_identifier) , (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }" if (parenthesized_expression "((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0))" ( (binary_expression "(local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)" (parenthesized_expression "(local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4))" ( (binary_expression "local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)" (binary_expression "local_cc._4_4_ < local_c4._4_4_" (field_expression "local_cc._4_4_" identifier . field_identifier) < (field_expression "local_c4._4_4_" identifier . field_identifier)) || (binary_expression "local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)" (binary_expression "local_cc._4_4_ - local_c4._4_4_" (field_expression "local_cc._4_4_" identifier . field_identifier) - (field_expression "local_c4._4_4_" identifier . field_identifier)) < (call_expression "(uint)((uint)local_cc < (uint)local_c4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)local_cc < (uint)local_c4)" ( (binary_expression "(uint)local_cc < (uint)local_c4" (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) && (parenthesized_expression "(lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)" ( (comma_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier = (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier (argument_list "(local_c4._4_4_,(uint)local_c4)" ( (field_expression "local_c4._4_4_" identifier . field_identifier) , (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) , (binary_expression "*(int *)(param_10 + 4) != 0" (pointer_expression "*(int *)(param_10 + 4)" * (cast_expression "(int *)(param_10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 4)" ( (binary_expression "param_10 + 4" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }" { (expression_statement "local_cc = lVar9;" (assignment_expression "local_cc = lVar9" identifier = identifier) ;) (if_statement "if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }" if (parenthesized_expression "(local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc))" ( (binary_expression "local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)" (binary_expression "local_c4._4_4_ - local_cc._4_4_" (field_expression "local_c4._4_4_" identifier . field_identifier) - (field_expression "local_cc._4_4_" identifier . field_identifier)) != (call_expression "(uint)((uint)local_c4 < (uint)local_cc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)local_c4 < (uint)local_cc)" ( (binary_expression "(uint)local_c4 < (uint)local_cc" (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) )) (compound_statement "{\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }" { (expression_statement "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;" (assignment_expression "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18" (pointer_expression "*(undefined ***)(puVar28 + -8)" * (cast_expression "(undefined ***)(puVar28 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -8)" ( (binary_expression "puVar28 + -8" identifier + number_literal) )))) = (binary_expression "local_b8 + -0x3dd18" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar28 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar28 + -0xc)" * (cast_expression "(undefined4 *)(puVar28 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;" (assignment_expression "*(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7" (pointer_expression "*(int *)(puVar28 + -0x10)" * (cast_expression "(int *)(puVar28 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_b8 + -0x107be7" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x1614b6;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x1614b6" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;" (assignment_expression "*(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc" (pointer_expression "*(uint *)(puVar28 + -4)" * (cast_expression "(uint *)(puVar28 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -4)" ( (binary_expression "puVar28 + -4" identifier + number_literal) )))) = (binary_expression "(uint)local_c4 - (uint)local_cc" (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) - (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "*(int *)(puVar28 + -8) = param_10;" (assignment_expression "*(int *)(puVar28 + -8) = param_10" (pointer_expression "*(int *)(puVar28 + -8)" * (cast_expression "(int *)(puVar28 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -8)" ( (binary_expression "puVar28 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar28 + -0xc) = param_1;" (assignment_expression "*(int *)(puVar28 + -0xc) = param_1" (pointer_expression "*(int *)(puVar28 + -0xc)" * (cast_expression "(int *)(puVar28 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 ***)(puVar28 + -0x10) = &local_5c;" (assignment_expression "*(undefined4 ***)(puVar28 + -0x10) = &local_5c" (pointer_expression "*(undefined4 ***)(puVar28 + -0x10)" * (cast_expression "(undefined4 ***)(puVar28 + -0x10)" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160ec0;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160ec0" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0015b5e0();" (call_expression "FUN_0015b5e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x44;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x44" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) comment (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160ecf;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160ecf" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" * (cast_expression "(undefined4 *)(puVar28 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x18)" ( (binary_expression "puVar28 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppiVar18 = (int ***)FUN_001e5200();" (assignment_expression "pppiVar18 = (int ***)FUN_001e5200()" identifier = (cast_expression "(int ***)FUN_001e5200()" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (call_expression "FUN_001e5200()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pppiVar18[1] = (int **)0x0;" (assignment_expression "pppiVar18[1] = (int **)0x0" (subscript_expression "pppiVar18[1]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[2] = (int **)0x0;" (assignment_expression "pppiVar18[2] = (int **)0x0" (subscript_expression "pppiVar18[2]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[3] = (int **)local_58;" (assignment_expression "pppiVar18[3] = (int **)local_58" (subscript_expression "pppiVar18[3]" identifier [ number_literal ]) = (cast_expression "(int **)local_58" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pppiVar18[8] = (int **)0x0;" (assignment_expression "pppiVar18[8] = (int **)0x0" (subscript_expression "pppiVar18[8]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[9] = (int **)0x0;" (assignment_expression "pppiVar18[9] = (int **)0x0" (subscript_expression "pppiVar18[9]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[10] = (int **)0x0;" (assignment_expression "pppiVar18[10] = (int **)0x0" (subscript_expression "pppiVar18[10]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[4] = (int **)0x0;" (assignment_expression "pppiVar18[4] = (int **)0x0" (subscript_expression "pppiVar18[4]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[5] = (int **)0xffffffff;" (assignment_expression "pppiVar18[5] = (int **)0xffffffff" (subscript_expression "pppiVar18[5]" identifier [ number_literal ]) = (cast_expression "(int **)0xffffffff" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[6] = (int **)0xffffffff;" (assignment_expression "pppiVar18[6] = (int **)0xffffffff" (subscript_expression "pppiVar18[6]" identifier [ number_literal ]) = (cast_expression "(int **)0xffffffff" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(pppiVar18 + 7)" * (cast_expression "(byte *)(pppiVar18 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppiVar18 + 7)" ( (binary_expression "pppiVar18 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppiVar18 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(pppiVar18 + 7) & 0xe0" (pointer_expression "*(byte *)(pppiVar18 + 7)" * (cast_expression "(byte *)(pppiVar18 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppiVar18 + 7)" ( (binary_expression "pppiVar18 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*pppiVar18 = (int **)(local_dc + 2);" (assignment_expression "*pppiVar18 = (int **)(local_dc + 2)" (pointer_expression "*pppiVar18" * identifier) = (cast_expression "(int **)(local_dc + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_dc + 2)" ( (binary_expression "local_dc + 2" identifier + number_literal) )))) ;) (expression_statement "pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);" (assignment_expression "pppiVar18[0xb] = (int **)(pppiVar18 + 0xd)" (subscript_expression "pppiVar18[0xb]" identifier [ number_literal ]) = (cast_expression "(int **)(pppiVar18 + 0xd)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pppiVar18 + 0xd)" ( (binary_expression "pppiVar18 + 0xd" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar28 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar28 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar28 + -8)" * (cast_expression "(undefined4 *)(puVar28 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -8)" ( (binary_expression "puVar28 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;" (assignment_expression "*(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c" (pointer_expression "*(int *)(puVar28 + -0xc)" * (cast_expression "(int *)(puVar28 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = (binary_expression "(int)local_58 + (int)local_5c" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 **)(puVar28 + -0x10) = local_5c;" (assignment_expression "*(undefined4 **)(puVar28 + -0x10) = local_5c" (pointer_expression "*(undefined4 **)(puVar28 + -0x10)" * (cast_expression "(undefined4 **)(puVar28 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;" (assignment_expression "*(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb" (pointer_expression "*(int ****)(puVar28 + -0x14)" * (cast_expression "(int ****)(puVar28 + -0x14)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = (binary_expression "pppiVar18 + 0xb" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160f42;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160f42" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" * (cast_expression "(undefined4 *)(puVar28 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x18)" ( (binary_expression "puVar28 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int ****)(puVar28 + -0x10) = pppiVar18;" (assignment_expression "*(int ****)(puVar28 + -0x10) = pppiVar18" (pointer_expression "*(int ****)(puVar28 + -0x10)" * (cast_expression "(int ****)(puVar28 + -0x10)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar28 + -0x14) = param_4;" (assignment_expression "*(int *)(puVar28 + -0x14) = param_4" (pointer_expression "*(int *)(puVar28 + -0x14)" * (cast_expression "(int *)(puVar28 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160f4d;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160f4d" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" * (cast_expression "(undefined4 *)(puVar28 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x18)" ( (binary_expression "puVar28 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000f2600();" (call_expression "FUN_000f2600()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_a4 = (uint **)pppiVar18;" (assignment_expression "local_a4 = (uint **)pppiVar18" identifier = (cast_expression "(uint **)pppiVar18" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }" if (parenthesized_expression "(*(char *)(param_3 + 0x1d4) != '\0')" ( (binary_expression "*(char *)(param_3 + 0x1d4) != '\0'" (pointer_expression "*(char *)(param_3 + 0x1d4)" * (cast_expression "(char *)(param_3 + 0x1d4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1d4)" ( (binary_expression "param_3 + 0x1d4" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }" { (expression_statement "puVar14 = *(undefined4 **)(param_3 + 0x1dc);" (assignment_expression "puVar14 = *(undefined4 **)(param_3 + 0x1dc)" identifier = (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" * (cast_expression "(undefined4 **)(param_3 + 0x1dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1dc)" ( (binary_expression "param_3 + 0x1dc" identifier + number_literal) ))))) ;) (if_statement "if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }" if (parenthesized_expression "(puVar14 == *(undefined4 **)(param_3 + 0x1e0))" ( (binary_expression "puVar14 == *(undefined4 **)(param_3 + 0x1e0)" identifier == (pointer_expression "*(undefined4 **)(param_3 + 0x1e0)" * (cast_expression "(undefined4 **)(param_3 + 0x1e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1e0)" ( (binary_expression "param_3 + 0x1e0" identifier + number_literal) ))))) )) (compound_statement "{\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }" { (expression_statement "*(uint ****)(puVar28 + -0xc) = &local_a4;" (assignment_expression "*(uint ****)(puVar28 + -0xc) = &local_a4" (pointer_expression "*(uint ****)(puVar28 + -0xc)" * (cast_expression "(uint ****)(puVar28 + -0xc)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_a4" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar28 + -0x10) = puVar14;" (assignment_expression "*(undefined4 **)(puVar28 + -0x10) = puVar14" (pointer_expression "*(undefined4 **)(puVar28 + -0x10)" * (cast_expression "(undefined4 **)(puVar28 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar28 + -0x14) = param_3 + 0x1d8;" (assignment_expression "*(int *)(puVar28 + -0x14) = param_3 + 0x1d8" (pointer_expression "*(int *)(puVar28 + -0x14)" * (cast_expression "(int *)(puVar28 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = (binary_expression "param_3 + 0x1d8" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x161091;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x161091" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" * (cast_expression "(undefined4 *)(puVar28 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x18)" ( (binary_expression "puVar28 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00163100();" (call_expression "FUN_00163100()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }" else (compound_statement "{\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }" { (expression_statement "*puVar14 = pppiVar18;" (assignment_expression "*puVar14 = pppiVar18" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;" (assignment_expression "*(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1" (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" * (cast_expression "(undefined4 **)(param_3 + 0x1dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1dc)" ( (binary_expression "param_3 + 0x1dc" identifier + number_literal) )))) = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) }))) })) (expression_statement "piVar27 = (int *)(puVar28 + -4);" (assignment_expression "piVar27 = (int *)(puVar28 + -4)" identifier = (cast_expression "(int *)(puVar28 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -4)" ( (binary_expression "puVar28 + -4" identifier + number_literal) )))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" identifier = identifier) ;) (expression_statement "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier = (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier (argument_list "(local_c4._4_4_,(uint)local_c4)" ( (field_expression "local_c4._4_4_" identifier . field_identifier) , (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }" if (parenthesized_expression "(local_5c != &local_54)" ( (binary_expression "local_5c != &local_54" identifier != (pointer_expression "&local_54" & identifier)) )) (compound_statement "{\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }" { (expression_statement "*(undefined4 **)(puVar28 + -0x14) = local_5c;" (assignment_expression "*(undefined4 **)(puVar28 + -0x14) = local_5c" (pointer_expression "*(undefined4 **)(puVar28 + -0x14)" * (cast_expression "(undefined4 **)(puVar28 + -0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160f83;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160f83" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" * (cast_expression "(undefined4 *)(puVar28 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x18)" ( (binary_expression "puVar28 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar27 = (int *)(puVar28 + -4);" (assignment_expression "piVar27 = (int *)(puVar28 + -4)" identifier = (cast_expression "(int *)(puVar28 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -4)" ( (binary_expression "puVar28 + -4" identifier + number_literal) )))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" identifier = identifier) ;) (expression_statement "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier = (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier (argument_list "(local_c4._4_4_,(uint)local_c4)" ( (field_expression "local_c4._4_4_" identifier . field_identifier) , (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) })) })) }))) (labeled_statement "LAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;" statement_identifier : (expression_statement "*(uint ****)((int)piVar27 + -0xc) = local_bc;" (assignment_expression "*(uint ****)((int)piVar27 + -0xc) = local_bc" (pointer_expression "*(uint ****)((int)piVar27 + -0xc)" * (cast_expression "(uint ****)((int)piVar27 + -0xc)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)piVar27 + -0x10) = param_4;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = param_4" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "local_cc = lVar9;" (assignment_expression "local_cc = lVar9" identifier = identifier) ;) (expression_statement "local_c4 = lVar10;" (assignment_expression "local_c4 = lVar10" identifier = identifier) ;) (expression_statement "FUN_000f5270();" (call_expression "FUN_000f5270()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_cc = local_d4 + local_c4;" (assignment_expression "local_cc = local_d4 + local_c4" identifier = (binary_expression "local_d4 + local_c4" identifier + identifier)) ;) (expression_statement "local_b4 = local_b4 + 0x10;" (assignment_expression "local_b4 = local_b4 + 0x10" identifier = (binary_expression "local_b4 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar28 = (undefined1 *)piVar27;" (assignment_expression "puVar28 = (undefined1 *)piVar27" identifier = (cast_expression "(undefined1 *)piVar27" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppppiVar24 = (int ****)local_b4;" (assignment_expression "ppppiVar24 = (int ****)local_b4" identifier = (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) }) while (parenthesized_expression "((int ****)*local_d8 != (int ****)local_b4)" ( (binary_expression "(int ****)*local_d8 != (int ****)local_b4" (cast_expression "(int ****)*local_d8" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*local_d8" * identifier)) != (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) ;) })) (labeled_statement "LAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);" statement_identifier : (expression_statement "local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);" (assignment_expression "local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20)" (field_expression "local_d4._4_4_" identifier . field_identifier) = (call_expression "(undefined4)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_ec = (uint **)((int)local_ec + 1);" (assignment_expression "local_ec = (uint **)((int)local_ec + 1)" identifier = (cast_expression "(uint **)((int)local_ec + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_ec + 1)" ( (binary_expression "(int)local_ec + 1" (cast_expression "(int)local_ec" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_d8 = local_d8 + 3;" (assignment_expression "local_d8 = local_d8 + 3" identifier = (binary_expression "local_d8 + 3" identifier + number_literal)) ;) (if_statement "if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }" if (parenthesized_expression "(local_ec == (uint **)local_f4)" ( (binary_expression "local_ec == (uint **)local_f4" identifier == (cast_expression "(uint **)local_f4" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )) (compound_statement "{\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }" { (if_statement "if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }" if (parenthesized_expression "(((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8))" ( (binary_expression "((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)" (parenthesized_expression "((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0))" ( (binary_expression "(param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)" (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) || (parenthesized_expression "((*(byte *)(param_4 + 0x55) & 4) == 0)" ( (binary_expression "(*(byte *)(param_4 + 0x55) & 4) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0x55) & 4)" ( (binary_expression "*(byte *)(param_4 + 0x55) & 4" (pointer_expression "*(byte *)(param_4 + 0x55)" * (cast_expression "(byte *)(param_4 + 0x55)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x55)" ( (binary_expression "param_4 + 0x55" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(*(int *)(param_4 + 0x50) != 8)" ( (binary_expression "*(int *)(param_4 + 0x50) != 8" (pointer_expression "*(int *)(param_4 + 0x50)" * (cast_expression "(int *)(param_4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n        *param_7 = local_cc;\n      }" { (expression_statement "*param_7 = local_cc;" (assignment_expression "*param_7 = local_cc" (pointer_expression "*param_7" * identifier) = identifier) ;) }) (else_clause "else {\n        local_cc = *param_7;\n      }" else (compound_statement "{\n        local_cc = *param_7;\n      }" { (expression_statement "local_cc = *param_7;" (assignment_expression "local_cc = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) }))) (expression_statement "*(longlong *)(param_1 + 0x40) = local_cc;" (assignment_expression "*(longlong *)(param_1 + 0x40) = local_cc" (pointer_expression "*(longlong *)(param_1 + 0x40)" * (cast_expression "(longlong *)(param_1 + 0x40)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x48) = *param_9;" (assignment_expression "*(undefined4 *)(param_1 + 0x48) = *param_9" (pointer_expression "*(undefined4 *)(param_1 + 0x48)" * (cast_expression "(undefined4 *)(param_1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = (pointer_expression "*param_9" * identifier)) ;) (expression_statement "puVar14 = local_114;" (assignment_expression "puVar14 = local_114" identifier = identifier) ;) (if_statement "if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }" if (parenthesized_expression "(local_110 != local_114)" ( (binary_expression "local_110 != local_114" identifier != identifier) )) (compound_statement "{\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }" { (do_statement "do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);" do (compound_statement "{\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        }" { (expression_statement "ppppiVar24 = (int ****)puVar14[1];" (assignment_expression "ppppiVar24 = (int ****)puVar14[1]" identifier = (cast_expression "(int ****)puVar14[1]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "puVar14[1]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar17 = (int ****)*puVar14;" (assignment_expression "ppppiVar17 = (int ****)*puVar14" identifier = (cast_expression "(int ****)*puVar14" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*puVar14" * identifier))) ;) (if_statement "if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }" if (parenthesized_expression "(ppppiVar24 != ppppiVar17)" ( (binary_expression "ppppiVar24 != ppppiVar17" identifier != identifier) )) (compound_statement "{\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }" { (do_statement "do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);" do (compound_statement "{\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            }" { (expression_statement "local_b4 = (uint ***)ppppiVar17;" (assignment_expression "local_b4 = (uint ***)ppppiVar17" identifier = (cast_expression "(uint ***)ppppiVar17" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }" if (parenthesized_expression "((uint ***)local_b4[6] != local_b4 + 8)" ( (binary_expression "(uint ***)local_b4[6] != local_b4 + 8" (cast_expression "(uint ***)local_b4[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_b4[6]" identifier [ number_literal ])) != (binary_expression "local_b4 + 8" identifier + number_literal)) )) (compound_statement "{\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }" { (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_b4[6];" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_b4[6]" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" * (cast_expression "(uint ***)((int)piVar27 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_b4[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160caf" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) })) (expression_statement "local_b4 = local_b4 + 0x10;" (assignment_expression "local_b4 = local_b4 + 0x10" identifier = (binary_expression "local_b4 + 0x10" identifier + number_literal)) ;) (expression_statement "ppppiVar17 = (int ****)local_b4;" (assignment_expression "ppppiVar17 = (int ****)local_b4" identifier = (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }) while (parenthesized_expression "(ppppiVar24 != (int ****)local_b4)" ( (binary_expression "ppppiVar24 != (int ****)local_b4" identifier != (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) ;) (expression_statement "ppppiVar17 = (int ****)*puVar14;" (assignment_expression "ppppiVar17 = (int ****)*puVar14" identifier = (cast_expression "(int ****)*puVar14" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*puVar14" * identifier))) ;) })) (if_statement "if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }" if (parenthesized_expression "(ppppiVar17 != (int ****)0x0)" ( (binary_expression "ppppiVar17 != (int ****)0x0" identifier != (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }" { (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x10) = ppppiVar17;" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = ppppiVar17" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" * (cast_expression "(int *****)((int)piVar27 + -0x10)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) })) (expression_statement "puVar14 = puVar14 + 3;" (assignment_expression "puVar14 = puVar14 + 3" identifier = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != local_110)" ( (binary_expression "puVar14 != local_110" identifier != identifier) )) ;) })) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = local_114;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = local_114" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "iVar29 = iVar29 >> 1;" (assignment_expression "iVar29 = iVar29 >> 1" identifier = (binary_expression "iVar29 >> 1" identifier >> number_literal)) ;) (if_statement "if (iVar29 == 0) goto LAB_00160b72;" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00160b72;" goto statement_identifier ;)) (goto_statement "goto LAB_001609e8;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void set_section_addresses(Output_section_element_input * this,\n   Symbol_table * param_1, Layout * layout, Output_section * output_section, uint64_t subalign,\n   uint64_t * dot_value, uint64_t * param_6, Output_section * * dot_section, string * fill,\n   Input_section_list * input_sections) */\n\nvoid __thiscall\ngold::Output_section_element_input::set_section_addresses\n          (Output_section_element_input *this,Symbol_table *param_1,Layout *layout,\n          Output_section *output_section,uint64_t subalign,uint64_t *dot_value,uint64_t *param_6,\n          Output_section **dot_section,string *fill,Input_section_list *input_sections)\n\n{\n  int iVar1;\n  anon_union_8_2_227b06d7_for_u1_ *paVar2;\n  size_t *psVar3;\n  Input_file *pIVar4;\n  _func_int_varargs **pp_Var5;\n  _func_int_varargs *p_Var6;\n  pointer pcVar7;\n  Sort_wildcard SVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  undefined **ppuVar11;\n  pointer ppOVar12;\n  _List_node_base *p_Var13;\n  ulonglong uVar14;\n  longlong lVar15;\n  Input_section *pIVar16;\n  Relobj *pRVar17;\n  anon_union_4_4_139239c7_for_u2_ aVar18;\n  _Alloc_hider _Var19;\n  undefined4 uVar20;\n  bool bVar21;\n  int *piVar22;\n  int iVar23;\n  pointer pIVar24;\n  Input_section *pIVar25;\n  int iVar26;\n  Output_section_data *pOVar27;\n  anon_union_8_2_227b06d7_for_u1_ *paVar28;\n  byte bVar29;\n  pointer pIVar30;\n  uint uVar31;\n  _List_node_base *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint *puVar32;\n  uint uVar33;\n  uint *puVar34;\n  uint *puVar35;\n  Input_section *pIVar36;\n  _List_node_base *p_Var37;\n  _List_node_base *p_Var38;\n  ulonglong uVar39;\n  uint local_134 [2];\n  size_t sStack_128;\n  uint auStack_124 [4];\n  int *local_114;\n  int *local_110;\n  uint *local_10c;\n  uint *local_108;\n  anon_union_8_2_227b06d7_for_u1_ *local_104;\n  int local_100;\n  Sort_wildcard local_fc;\n  Sort_wildcard local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint local_ec;\n  int local_e8;\n  ulonglong local_e4;\n  anon_union_8_2_227b06d7_for_u1_ *local_dc;\n  int *local_d8;\n  undefined8 local_d4;\n  uint local_cc;\n  uint local_c8;\n  uint local_c4;\n  uint local_c0;\n  Input_section *local_bc;\n  undefined **local_b8;\n  undefined8 local_b4;\n  undefined1 local_a4 [24];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  Input_section sis;\n  Input_section_info isi;\n  \n  local_b8 = &_GLOBAL_OFFSET_TABLE_;\n  local_b4._0_4_ =\n       (Relobj *)\n       (this->input_section_patterns_).\n       super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n       ._M_impl._M_finish;\n  pIVar24 = (this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_start;\n  uVar33 = (int)(Relobj *)local_b4 - (int)pIVar24 >> 5;\n  local_cc = uVar33;\n  local_e4 = subalign;\n  if (uVar33 != 0) {\n    pIVar30 = (pointer)(((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24);\n    bVar21 = false;\n    do {\n      if (pIVar24->sort != SORT_WILDCARD_NONE) {\n        bVar21 = true;\n      }\n      pIVar24 = pIVar24 + 1;\n    } while (pIVar30 != pIVar24);\n    if (bVar21) {\n      local_114 = (int *)operator_new(uVar33 * 0xc);\n      piVar22 = local_114;\n      uVar31 = uVar33;\n      do {\n        *piVar22 = 0;\n        piVar22[1] = 0;\n        piVar22[2] = 0;\n        uVar31 = uVar31 - 1;\n        piVar22 = piVar22 + 3;\n      } while (uVar31 != 0);\n      local_110 = local_114 + uVar33 * 3;\n      p_Var37 = (input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base._M_next;\n      local_f4 = local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (int *)operator_new(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  p_Var37 = (input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            )._M_impl._M_node.super__List_node_base._M_next;\njoined_r0x001608d0:\n  puVar35 = auStack_124 + 2;\n  if (p_Var37 != (_List_node_base *)input_sections) {\n    local_d4 = CONCAT44(local_d4._4_4_,&isi.section_name_.field_2);\n    local_bc = (Input_section *)local_a4;\n    puVar34 = auStack_124 + 2;\n    do {\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160572;\n      local_b4._0_4_ =\n           Output_section::Input_section::relobj(*(Input_section **)((int)puVar34 + -0x10));\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160586;\n      uVar33 = Output_section::Input_section::shndx(*(Input_section **)((int)puVar34 + -0x10));\n      isi.input_section_.shndx_ = (uint)p_Var37[1]._M_next;\n      isi.input_section_.p2align_ = (uint)p_Var37[1]._M_prev;\n      isi.input_section_.u1_.data_size._0_4_ = (p_Var37 + 1)[1]._M_next;\n      isi.input_section_.u1_.data_size._4_4_ = (p_Var37 + 1)[1]._M_prev;\n      isi.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3);\n      isi.section_name_.field_2._M_allocated_capacity =\n           isi.section_name_.field_2._M_allocated_capacity & 0xffffff00;\n      isi.input_section_.section_order_index_ = (uint)p_Var37[3]._M_prev;\n      isi.section_name_._M_dataplus._M_p = (pointer)local_d4;\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      isi.section_name_._M_string_length = 0;\n      isi.size_._0_4_ = (_List_node_base *)0x0;\n      isi.size_._4_4_ = (_List_node_base *)0x0;\n      isi.addralign_._0_4_ = 1;\n      isi.addralign_._4_4_ = 0;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x160600;\n        File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));\n      }\n      pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n      *(uint *)((int)puVar34 + -8) = uVar33;\n      *(Relobj **)((int)puVar34 + -0xc) = (Relobj *)local_b4;\n      *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      p_Var6 = pp_Var5[0x10];\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160619;\n      (*p_Var6)();\n      *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x16062a;\n      bVar21 = is_compressed_debug_section(*(char **)((int)puVar34 + -0x14));\n      if (bVar21) {\n        local_d8 = (int *)local_84;\n        *(undefined4 *)((int)puVar34 + -8) = 0;\n        *(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);\n        *(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;\n        *(undefined1 ***)((int)puVar34 + -0x14) = local_8c;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>();\n        *(undefined1 ***)((int)puVar34 + -0x10) = local_8c;\n        *(Input_section **)((int)puVar34 + -0x14) = &sis;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160674;\n        corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n        uVar20 = isi.section_name_.field_2._M_allocated_capacity;\n        _Var19 = isi.section_name_._M_dataplus;\n        paVar28 = &sis.u1_;\n        local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }\n        else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }\nLAB_001606d8:\n        sis.p2align_ = 0;\n        *(undefined1 *)sis.shndx_ = 0;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n        if ((int *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n      }\n      else {\n        *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;\n        std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n      }\n      puVar35 = (uint *)((int)puVar34 + -4);\n      if ((Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8)) {\n        *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      pRVar17 = (Relobj *)local_b4;\n      if (p_Var37[1]._M_next == (_List_node_base *)0xfffffffc) {\n        p_Var38 = p_Var37[3]._M_next;\n        isi.size_._0_4_ = p_Var38[1]._M_prev;\n        isi.size_._4_4_ = p_Var38[2]._M_next;\n        p_Var13 = p_Var38->_M_next[1]._M_prev;\n        if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }\n        else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }\n      }\n      else {\n        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        p_Var6 = pp_Var5[0xf];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;\n        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();\n        pp_Var5 = (pRVar17->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;\n        p_Var6 = pp_Var5[0x17];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;\n        isi.size_._4_4_ = extraout_EDX;\n        iVar23 = (*p_Var6)();\n        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);\n      }\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160791;\n        File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));\n      }\n      *(pointer *)((int)puVar34 + -0x10) =\n           (((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p;\n      *(Output_section_element_input **)((int)puVar34 + -0x14) = this;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x1607a8;\n      bVar21 = match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10));\n      if (bVar21) {\n        pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;\n        if ((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24) {\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar32 = (uint *)local_114[1];\n        piVar22 = local_114;\n        if (puVar32 == (uint *)local_114[2]) {\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }\n        else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }\nLAB_001612ad:\n        p_Var38 = p_Var37->_M_next;\n        psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar3 = *psVar3 - 1;\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;\n        std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      else {\nLAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      }\n      if (isi.section_name_._M_dataplus._M_p != (pointer)local_d4) {\n        *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      puVar34 = (uint *)((int)puVar34 + -4);\n      p_Var37 = p_Var38;\n    } while (p_Var38 != (_List_node_base *)input_sections);\n  }\n  local_ec = 0;\n  local_cc = (uint)*dot_value;\n  local_c8 = *(uint *)((int)dot_value + 4);\n  local_d8 = local_114 + 1;\n  local_dc = (anon_union_8_2_227b06d7_for_u1_ *)(local_b8 + -0x2d01);\n  uVar39 = local_e4 - 1;\n  local_b4 = uVar39;\n  local_f0 = (uint)((uVar39 & local_e4) >> 0x20) | (uint)(uVar39 & local_e4);\n  local_e8 = (int)local_b8 + -0xeb73d;\n  auStack_124[2] = (int)local_b8 + -0xeb73d;\n  do {\n    ppuVar11 = local_b8;\n    local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n    puVar34 = (uint *)*local_d8;\n    puVar32 = (uint *)local_d8[-1];\n    local_d4 = CONCAT44(local_d4._4_4_,puVar34);\n    if (puVar34 != puVar32) {\n      if (output_section == (Output_section *)0x0) {\n        local_b4 = uVar39;\n        puVar35[-2] = (uint)(local_b8 + -0x3dd65);\n        puVar35[-3] = 0x6ed;\n        puVar35[-4] = (int)ppuVar11 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        puVar35[-5] = (uint)&LAB_00161519;\n        do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n      }\n      SVar8 = (this->input_section_patterns_).\n              super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort;\n      if (SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE) {\n        local_fc = this->filename_sort_;\n        local_f8 = SVar8;\n        iVar23 = (int)puVar34 - (int)puVar32;\n        if (0x7fffffc0 < iVar23) {\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }\n        if (0 < iVar23) {\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = auStack_124[2];\nLAB_00160b72:\n        local_b4 = uVar39;\n        puVar35[-1] = local_f8;\n        puVar35[-2] = local_fc;\n        puVar35[-3] = (uint)(pointer)local_d4;\n        puVar35[-4] = (uint)puVar32;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        puVar35[-5] = 0x160b8a;\n        std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));\n        local_b4._0_4_ = (Relobj *)0x0;\n        pIVar25 = (Input_section *)0x0;\nLAB_00160b99:\n        pIVar36 = pIVar25;\n        if ((Relobj *)local_b4 != (Relobj *)pIVar25) {\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }\n        puVar35[-3] = local_100;\n        puVar35[-4] = (uint)pIVar25;\n        puVar35[-5] = 0x160be4;\n        operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        puVar32 = (uint *)local_d8[-1];\n        if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;\n      }\n      local_b4._0_4_ = (Relobj *)puVar32;\n      do {\n        sis.shndx_ = *(uint *)(Relobj *)local_b4;\n        sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);\n        sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);\n        sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);\n        sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);\n        sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);\n        if (sis.p2align_ == 0) {\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }\n        else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }\n        puVar35[-3] = (uint)local_bc;\n        puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        puVar35[-5] = 0x160d3f;\n        Output_section::add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);\n        local_cc = (int)(pointer)local_d4 + local_c4;\n        local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);\n      } while ((Relobj *)*local_d8 != (Relobj *)local_b4);\n    }\nLAB_00160c00:\n    local_ec = local_ec + 1;\n    local_d8 = local_d8 + 3;\n    if (local_ec == local_f4) {\n      if (((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||\n         (output_section->type_ != 8)) {\n        *(uint *)dot_value = local_cc;\n        *(uint *)((int)dot_value + 4) = local_c8;\n      }\n      else {\n        local_c8 = *(uint *)((int)dot_value + 4);\n        local_cc = (uint)*dot_value;\n      }\n      *(uint *)&this->final_dot_value_ = local_cc;\n      *(uint *)((int)&this->final_dot_value_ + 4) = local_c8;\n      this->final_dot_section_ = *dot_section;\n      piVar22 = local_114;\n      if (local_110 != local_114) {\n        do {\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        } while (piVar22 != local_110);\n      }\n      local_b4 = uVar39;\n      puVar35[-4] = (uint)local_114;\n      puVar35[-5] = 0x160cfa;\n      operator_delete((void *)puVar35[-4]);\n      return;\n    }\n  } while( true );\n  iVar23 = iVar23 >> 1;\n  if (iVar23 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}\n\n" comment comment comment comment (function_definition "void __thiscall\ngold::Output_section_element_input::set_section_addresses\n          (Output_section_element_input *this,Symbol_table *param_1,Layout *layout,\n          Output_section *output_section,uint64_t subalign,uint64_t *dot_value,uint64_t *param_6,\n          Output_section **dot_section,string *fill,Input_section_list *input_sections)\n\n{\n  int iVar1;\n  anon_union_8_2_227b06d7_for_u1_ *paVar2;\n  size_t *psVar3;\n  Input_file *pIVar4;\n  _func_int_varargs **pp_Var5;\n  _func_int_varargs *p_Var6;\n  pointer pcVar7;\n  Sort_wildcard SVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  undefined **ppuVar11;\n  pointer ppOVar12;\n  _List_node_base *p_Var13;\n  ulonglong uVar14;\n  longlong lVar15;\n  Input_section *pIVar16;\n  Relobj *pRVar17;\n  anon_union_4_4_139239c7_for_u2_ aVar18;\n  _Alloc_hider _Var19;\n  undefined4 uVar20;\n  bool bVar21;\n  int *piVar22;\n  int iVar23;\n  pointer pIVar24;\n  Input_section *pIVar25;\n  int iVar26;\n  Output_section_data *pOVar27;\n  anon_union_8_2_227b06d7_for_u1_ *paVar28;\n  byte bVar29;\n  pointer pIVar30;\n  uint uVar31;\n  _List_node_base *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint *puVar32;\n  uint uVar33;\n  uint *puVar34;\n  uint *puVar35;\n  Input_section *pIVar36;\n  _List_node_base *p_Var37;\n  _List_node_base *p_Var38;\n  ulonglong uVar39;\n  uint local_134 [2];\n  size_t sStack_128;\n  uint auStack_124 [4];\n  int *local_114;\n  int *local_110;\n  uint *local_10c;\n  uint *local_108;\n  anon_union_8_2_227b06d7_for_u1_ *local_104;\n  int local_100;\n  Sort_wildcard local_fc;\n  Sort_wildcard local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint local_ec;\n  int local_e8;\n  ulonglong local_e4;\n  anon_union_8_2_227b06d7_for_u1_ *local_dc;\n  int *local_d8;\n  undefined8 local_d4;\n  uint local_cc;\n  uint local_c8;\n  uint local_c4;\n  uint local_c0;\n  Input_section *local_bc;\n  undefined **local_b8;\n  undefined8 local_b4;\n  undefined1 local_a4 [24];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  Input_section sis;\n  Input_section_info isi;\n  \n  local_b8 = &_GLOBAL_OFFSET_TABLE_;\n  local_b4._0_4_ =\n       (Relobj *)\n       (this->input_section_patterns_).\n       super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n       ._M_impl._M_finish;\n  pIVar24 = (this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_start;\n  uVar33 = (int)(Relobj *)local_b4 - (int)pIVar24 >> 5;\n  local_cc = uVar33;\n  local_e4 = subalign;\n  if (uVar33 != 0) {\n    pIVar30 = (pointer)(((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24);\n    bVar21 = false;\n    do {\n      if (pIVar24->sort != SORT_WILDCARD_NONE) {\n        bVar21 = true;\n      }\n      pIVar24 = pIVar24 + 1;\n    } while (pIVar30 != pIVar24);\n    if (bVar21) {\n      local_114 = (int *)operator_new(uVar33 * 0xc);\n      piVar22 = local_114;\n      uVar31 = uVar33;\n      do {\n        *piVar22 = 0;\n        piVar22[1] = 0;\n        piVar22[2] = 0;\n        uVar31 = uVar31 - 1;\n        piVar22 = piVar22 + 3;\n      } while (uVar31 != 0);\n      local_110 = local_114 + uVar33 * 3;\n      p_Var37 = (input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base._M_next;\n      local_f4 = local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (int *)operator_new(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  p_Var37 = (input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            )._M_impl._M_node.super__List_node_base._M_next;\njoined_r0x001608d0:\n  puVar35 = auStack_124 + 2;\n  if (p_Var37 != (_List_node_base *)input_sections) {\n    local_d4 = CONCAT44(local_d4._4_4_,&isi.section_name_.field_2);\n    local_bc = (Input_section *)local_a4;\n    puVar34 = auStack_124 + 2;\n    do {\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160572;\n      local_b4._0_4_ =\n           Output_section::Input_section::relobj(*(Input_section **)((int)puVar34 + -0x10));\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160586;\n      uVar33 = Output_section::Input_section::shndx(*(Input_section **)((int)puVar34 + -0x10));\n      isi.input_section_.shndx_ = (uint)p_Var37[1]._M_next;\n      isi.input_section_.p2align_ = (uint)p_Var37[1]._M_prev;\n      isi.input_section_.u1_.data_size._0_4_ = (p_Var37 + 1)[1]._M_next;\n      isi.input_section_.u1_.data_size._4_4_ = (p_Var37 + 1)[1]._M_prev;\n      isi.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3);\n      isi.section_name_.field_2._M_allocated_capacity =\n           isi.section_name_.field_2._M_allocated_capacity & 0xffffff00;\n      isi.input_section_.section_order_index_ = (uint)p_Var37[3]._M_prev;\n      isi.section_name_._M_dataplus._M_p = (pointer)local_d4;\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      isi.section_name_._M_string_length = 0;\n      isi.size_._0_4_ = (_List_node_base *)0x0;\n      isi.size_._4_4_ = (_List_node_base *)0x0;\n      isi.addralign_._0_4_ = 1;\n      isi.addralign_._4_4_ = 0;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x160600;\n        File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));\n      }\n      pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n      *(uint *)((int)puVar34 + -8) = uVar33;\n      *(Relobj **)((int)puVar34 + -0xc) = (Relobj *)local_b4;\n      *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      p_Var6 = pp_Var5[0x10];\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160619;\n      (*p_Var6)();\n      *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x16062a;\n      bVar21 = is_compressed_debug_section(*(char **)((int)puVar34 + -0x14));\n      if (bVar21) {\n        local_d8 = (int *)local_84;\n        *(undefined4 *)((int)puVar34 + -8) = 0;\n        *(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);\n        *(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;\n        *(undefined1 ***)((int)puVar34 + -0x14) = local_8c;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>();\n        *(undefined1 ***)((int)puVar34 + -0x10) = local_8c;\n        *(Input_section **)((int)puVar34 + -0x14) = &sis;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160674;\n        corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n        uVar20 = isi.section_name_.field_2._M_allocated_capacity;\n        _Var19 = isi.section_name_._M_dataplus;\n        paVar28 = &sis.u1_;\n        local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }\n        else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }\nLAB_001606d8:\n        sis.p2align_ = 0;\n        *(undefined1 *)sis.shndx_ = 0;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n        if ((int *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n      }\n      else {\n        *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;\n        std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n      }\n      puVar35 = (uint *)((int)puVar34 + -4);\n      if ((Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8)) {\n        *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      pRVar17 = (Relobj *)local_b4;\n      if (p_Var37[1]._M_next == (_List_node_base *)0xfffffffc) {\n        p_Var38 = p_Var37[3]._M_next;\n        isi.size_._0_4_ = p_Var38[1]._M_prev;\n        isi.size_._4_4_ = p_Var38[2]._M_next;\n        p_Var13 = p_Var38->_M_next[1]._M_prev;\n        if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }\n        else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }\n      }\n      else {\n        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        p_Var6 = pp_Var5[0xf];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;\n        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();\n        pp_Var5 = (pRVar17->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;\n        p_Var6 = pp_Var5[0x17];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;\n        isi.size_._4_4_ = extraout_EDX;\n        iVar23 = (*p_Var6)();\n        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);\n      }\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160791;\n        File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));\n      }\n      *(pointer *)((int)puVar34 + -0x10) =\n           (((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p;\n      *(Output_section_element_input **)((int)puVar34 + -0x14) = this;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x1607a8;\n      bVar21 = match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10));\n      if (bVar21) {\n        pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;\n        if ((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24) {\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar32 = (uint *)local_114[1];\n        piVar22 = local_114;\n        if (puVar32 == (uint *)local_114[2]) {\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }\n        else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }\nLAB_001612ad:\n        p_Var38 = p_Var37->_M_next;\n        psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar3 = *psVar3 - 1;\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;\n        std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      else {\nLAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      }\n      if (isi.section_name_._M_dataplus._M_p != (pointer)local_d4) {\n        *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      puVar34 = (uint *)((int)puVar34 + -4);\n      p_Var37 = p_Var38;\n    } while (p_Var38 != (_List_node_base *)input_sections);\n  }\n  local_ec = 0;\n  local_cc = (uint)*dot_value;\n  local_c8 = *(uint *)((int)dot_value + 4);\n  local_d8 = local_114 + 1;\n  local_dc = (anon_union_8_2_227b06d7_for_u1_ *)(local_b8 + -0x2d01);\n  uVar39 = local_e4 - 1;\n  local_b4 = uVar39;\n  local_f0 = (uint)((uVar39 & local_e4) >> 0x20) | (uint)(uVar39 & local_e4);\n  local_e8 = (int)local_b8 + -0xeb73d;\n  auStack_124[2] = (int)local_b8 + -0xeb73d;\n  do {\n    ppuVar11 = local_b8;\n    local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n    puVar34 = (uint *)*local_d8;\n    puVar32 = (uint *)local_d8[-1];\n    local_d4 = CONCAT44(local_d4._4_4_,puVar34);\n    if (puVar34 != puVar32) {\n      if (output_section == (Output_section *)0x0) {\n        local_b4 = uVar39;\n        puVar35[-2] = (uint)(local_b8 + -0x3dd65);\n        puVar35[-3] = 0x6ed;\n        puVar35[-4] = (int)ppuVar11 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        puVar35[-5] = (uint)&LAB_00161519;\n        do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n      }\n      SVar8 = (this->input_section_patterns_).\n              super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort;\n      if (SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE) {\n        local_fc = this->filename_sort_;\n        local_f8 = SVar8;\n        iVar23 = (int)puVar34 - (int)puVar32;\n        if (0x7fffffc0 < iVar23) {\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }\n        if (0 < iVar23) {\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = auStack_124[2];\nLAB_00160b72:\n        local_b4 = uVar39;\n        puVar35[-1] = local_f8;\n        puVar35[-2] = local_fc;\n        puVar35[-3] = (uint)(pointer)local_d4;\n        puVar35[-4] = (uint)puVar32;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        puVar35[-5] = 0x160b8a;\n        std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));\n        local_b4._0_4_ = (Relobj *)0x0;\n        pIVar25 = (Input_section *)0x0;\nLAB_00160b99:\n        pIVar36 = pIVar25;\n        if ((Relobj *)local_b4 != (Relobj *)pIVar25) {\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }\n        puVar35[-3] = local_100;\n        puVar35[-4] = (uint)pIVar25;\n        puVar35[-5] = 0x160be4;\n        operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        puVar32 = (uint *)local_d8[-1];\n        if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;\n      }\n      local_b4._0_4_ = (Relobj *)puVar32;\n      do {\n        sis.shndx_ = *(uint *)(Relobj *)local_b4;\n        sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);\n        sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);\n        sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);\n        sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);\n        sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);\n        if (sis.p2align_ == 0) {\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }\n        else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }\n        puVar35[-3] = (uint)local_bc;\n        puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        puVar35[-5] = 0x160d3f;\n        Output_section::add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);\n        local_cc = (int)(pointer)local_d4 + local_c4;\n        local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);\n      } while ((Relobj *)*local_d8 != (Relobj *)local_b4);\n    }\nLAB_00160c00:\n    local_ec = local_ec + 1;\n    local_d8 = local_d8 + 3;\n    if (local_ec == local_f4) {\n      if (((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||\n         (output_section->type_ != 8)) {\n        *(uint *)dot_value = local_cc;\n        *(uint *)((int)dot_value + 4) = local_c8;\n      }\n      else {\n        local_c8 = *(uint *)((int)dot_value + 4);\n        local_cc = (uint)*dot_value;\n      }\n      *(uint *)&this->final_dot_value_ = local_cc;\n      *(uint *)((int)&this->final_dot_value_ + 4) = local_c8;\n      this->final_dot_section_ = *dot_section;\n      piVar22 = local_114;\n      if (local_110 != local_114) {\n        do {\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        } while (piVar22 != local_110);\n      }\n      local_b4 = uVar39;\n      puVar35[-4] = (uint)local_114;\n      puVar35[-5] = 0x160cfa;\n      operator_delete((void *)puVar35[-4]);\n      return;\n    }\n  } while( true );\n  iVar23 = iVar23 >> 1;\n  if (iVar23 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section_element_input::" identifier : : identifier : :) (function_declarator "set_section_addresses\n          (Output_section_element_input *this,Symbol_table *param_1,Layout *layout,\n          Output_section *output_section,uint64_t subalign,uint64_t *dot_value,uint64_t *param_6,\n          Output_section **dot_section,string *fill,Input_section_list *input_sections)" identifier (parameter_list "(Output_section_element_input *this,Symbol_table *param_1,Layout *layout,\n          Output_section *output_section,uint64_t subalign,uint64_t *dot_value,uint64_t *param_6,\n          Output_section **dot_section,string *fill,Input_section_list *input_sections)" ( (parameter_declaration "Output_section_element_input *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Output_section *output_section" type_identifier (pointer_declarator "*output_section" * identifier)) , (parameter_declaration "uint64_t subalign" primitive_type identifier) , (parameter_declaration "uint64_t *dot_value" primitive_type (pointer_declarator "*dot_value" * identifier)) , (parameter_declaration "uint64_t *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "Output_section **dot_section" type_identifier (pointer_declarator "**dot_section" * (pointer_declarator "*dot_section" * identifier))) , (parameter_declaration "string *fill" type_identifier (pointer_declarator "*fill" * identifier)) , (parameter_declaration "Input_section_list *input_sections" type_identifier (pointer_declarator "*input_sections" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  anon_union_8_2_227b06d7_for_u1_ *paVar2;\n  size_t *psVar3;\n  Input_file *pIVar4;\n  _func_int_varargs **pp_Var5;\n  _func_int_varargs *p_Var6;\n  pointer pcVar7;\n  Sort_wildcard SVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  undefined **ppuVar11;\n  pointer ppOVar12;\n  _List_node_base *p_Var13;\n  ulonglong uVar14;\n  longlong lVar15;\n  Input_section *pIVar16;\n  Relobj *pRVar17;\n  anon_union_4_4_139239c7_for_u2_ aVar18;\n  _Alloc_hider _Var19;\n  undefined4 uVar20;\n  bool bVar21;\n  int *piVar22;\n  int iVar23;\n  pointer pIVar24;\n  Input_section *pIVar25;\n  int iVar26;\n  Output_section_data *pOVar27;\n  anon_union_8_2_227b06d7_for_u1_ *paVar28;\n  byte bVar29;\n  pointer pIVar30;\n  uint uVar31;\n  _List_node_base *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint *puVar32;\n  uint uVar33;\n  uint *puVar34;\n  uint *puVar35;\n  Input_section *pIVar36;\n  _List_node_base *p_Var37;\n  _List_node_base *p_Var38;\n  ulonglong uVar39;\n  uint local_134 [2];\n  size_t sStack_128;\n  uint auStack_124 [4];\n  int *local_114;\n  int *local_110;\n  uint *local_10c;\n  uint *local_108;\n  anon_union_8_2_227b06d7_for_u1_ *local_104;\n  int local_100;\n  Sort_wildcard local_fc;\n  Sort_wildcard local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint local_ec;\n  int local_e8;\n  ulonglong local_e4;\n  anon_union_8_2_227b06d7_for_u1_ *local_dc;\n  int *local_d8;\n  undefined8 local_d4;\n  uint local_cc;\n  uint local_c8;\n  uint local_c4;\n  uint local_c0;\n  Input_section *local_bc;\n  undefined **local_b8;\n  undefined8 local_b4;\n  undefined1 local_a4 [24];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  Input_section sis;\n  Input_section_info isi;\n  \n  local_b8 = &_GLOBAL_OFFSET_TABLE_;\n  local_b4._0_4_ =\n       (Relobj *)\n       (this->input_section_patterns_).\n       super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n       ._M_impl._M_finish;\n  pIVar24 = (this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_start;\n  uVar33 = (int)(Relobj *)local_b4 - (int)pIVar24 >> 5;\n  local_cc = uVar33;\n  local_e4 = subalign;\n  if (uVar33 != 0) {\n    pIVar30 = (pointer)(((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24);\n    bVar21 = false;\n    do {\n      if (pIVar24->sort != SORT_WILDCARD_NONE) {\n        bVar21 = true;\n      }\n      pIVar24 = pIVar24 + 1;\n    } while (pIVar30 != pIVar24);\n    if (bVar21) {\n      local_114 = (int *)operator_new(uVar33 * 0xc);\n      piVar22 = local_114;\n      uVar31 = uVar33;\n      do {\n        *piVar22 = 0;\n        piVar22[1] = 0;\n        piVar22[2] = 0;\n        uVar31 = uVar31 - 1;\n        piVar22 = piVar22 + 3;\n      } while (uVar31 != 0);\n      local_110 = local_114 + uVar33 * 3;\n      p_Var37 = (input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base._M_next;\n      local_f4 = local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (int *)operator_new(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  p_Var37 = (input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            )._M_impl._M_node.super__List_node_base._M_next;\njoined_r0x001608d0:\n  puVar35 = auStack_124 + 2;\n  if (p_Var37 != (_List_node_base *)input_sections) {\n    local_d4 = CONCAT44(local_d4._4_4_,&isi.section_name_.field_2);\n    local_bc = (Input_section *)local_a4;\n    puVar34 = auStack_124 + 2;\n    do {\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160572;\n      local_b4._0_4_ =\n           Output_section::Input_section::relobj(*(Input_section **)((int)puVar34 + -0x10));\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160586;\n      uVar33 = Output_section::Input_section::shndx(*(Input_section **)((int)puVar34 + -0x10));\n      isi.input_section_.shndx_ = (uint)p_Var37[1]._M_next;\n      isi.input_section_.p2align_ = (uint)p_Var37[1]._M_prev;\n      isi.input_section_.u1_.data_size._0_4_ = (p_Var37 + 1)[1]._M_next;\n      isi.input_section_.u1_.data_size._4_4_ = (p_Var37 + 1)[1]._M_prev;\n      isi.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3);\n      isi.section_name_.field_2._M_allocated_capacity =\n           isi.section_name_.field_2._M_allocated_capacity & 0xffffff00;\n      isi.input_section_.section_order_index_ = (uint)p_Var37[3]._M_prev;\n      isi.section_name_._M_dataplus._M_p = (pointer)local_d4;\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      isi.section_name_._M_string_length = 0;\n      isi.size_._0_4_ = (_List_node_base *)0x0;\n      isi.size_._4_4_ = (_List_node_base *)0x0;\n      isi.addralign_._0_4_ = 1;\n      isi.addralign_._4_4_ = 0;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x160600;\n        File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));\n      }\n      pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n      *(uint *)((int)puVar34 + -8) = uVar33;\n      *(Relobj **)((int)puVar34 + -0xc) = (Relobj *)local_b4;\n      *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      p_Var6 = pp_Var5[0x10];\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160619;\n      (*p_Var6)();\n      *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x16062a;\n      bVar21 = is_compressed_debug_section(*(char **)((int)puVar34 + -0x14));\n      if (bVar21) {\n        local_d8 = (int *)local_84;\n        *(undefined4 *)((int)puVar34 + -8) = 0;\n        *(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);\n        *(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;\n        *(undefined1 ***)((int)puVar34 + -0x14) = local_8c;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>();\n        *(undefined1 ***)((int)puVar34 + -0x10) = local_8c;\n        *(Input_section **)((int)puVar34 + -0x14) = &sis;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160674;\n        corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n        uVar20 = isi.section_name_.field_2._M_allocated_capacity;\n        _Var19 = isi.section_name_._M_dataplus;\n        paVar28 = &sis.u1_;\n        local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }\n        else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }\nLAB_001606d8:\n        sis.p2align_ = 0;\n        *(undefined1 *)sis.shndx_ = 0;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n        if ((int *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n      }\n      else {\n        *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;\n        std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n      }\n      puVar35 = (uint *)((int)puVar34 + -4);\n      if ((Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8)) {\n        *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      pRVar17 = (Relobj *)local_b4;\n      if (p_Var37[1]._M_next == (_List_node_base *)0xfffffffc) {\n        p_Var38 = p_Var37[3]._M_next;\n        isi.size_._0_4_ = p_Var38[1]._M_prev;\n        isi.size_._4_4_ = p_Var38[2]._M_next;\n        p_Var13 = p_Var38->_M_next[1]._M_prev;\n        if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }\n        else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }\n      }\n      else {\n        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        p_Var6 = pp_Var5[0xf];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;\n        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();\n        pp_Var5 = (pRVar17->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;\n        p_Var6 = pp_Var5[0x17];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;\n        isi.size_._4_4_ = extraout_EDX;\n        iVar23 = (*p_Var6)();\n        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);\n      }\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160791;\n        File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));\n      }\n      *(pointer *)((int)puVar34 + -0x10) =\n           (((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p;\n      *(Output_section_element_input **)((int)puVar34 + -0x14) = this;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x1607a8;\n      bVar21 = match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10));\n      if (bVar21) {\n        pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;\n        if ((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24) {\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar32 = (uint *)local_114[1];\n        piVar22 = local_114;\n        if (puVar32 == (uint *)local_114[2]) {\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }\n        else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }\nLAB_001612ad:\n        p_Var38 = p_Var37->_M_next;\n        psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar3 = *psVar3 - 1;\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;\n        std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      else {\nLAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      }\n      if (isi.section_name_._M_dataplus._M_p != (pointer)local_d4) {\n        *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      puVar34 = (uint *)((int)puVar34 + -4);\n      p_Var37 = p_Var38;\n    } while (p_Var38 != (_List_node_base *)input_sections);\n  }\n  local_ec = 0;\n  local_cc = (uint)*dot_value;\n  local_c8 = *(uint *)((int)dot_value + 4);\n  local_d8 = local_114 + 1;\n  local_dc = (anon_union_8_2_227b06d7_for_u1_ *)(local_b8 + -0x2d01);\n  uVar39 = local_e4 - 1;\n  local_b4 = uVar39;\n  local_f0 = (uint)((uVar39 & local_e4) >> 0x20) | (uint)(uVar39 & local_e4);\n  local_e8 = (int)local_b8 + -0xeb73d;\n  auStack_124[2] = (int)local_b8 + -0xeb73d;\n  do {\n    ppuVar11 = local_b8;\n    local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n    puVar34 = (uint *)*local_d8;\n    puVar32 = (uint *)local_d8[-1];\n    local_d4 = CONCAT44(local_d4._4_4_,puVar34);\n    if (puVar34 != puVar32) {\n      if (output_section == (Output_section *)0x0) {\n        local_b4 = uVar39;\n        puVar35[-2] = (uint)(local_b8 + -0x3dd65);\n        puVar35[-3] = 0x6ed;\n        puVar35[-4] = (int)ppuVar11 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        puVar35[-5] = (uint)&LAB_00161519;\n        do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n      }\n      SVar8 = (this->input_section_patterns_).\n              super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort;\n      if (SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE) {\n        local_fc = this->filename_sort_;\n        local_f8 = SVar8;\n        iVar23 = (int)puVar34 - (int)puVar32;\n        if (0x7fffffc0 < iVar23) {\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }\n        if (0 < iVar23) {\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = auStack_124[2];\nLAB_00160b72:\n        local_b4 = uVar39;\n        puVar35[-1] = local_f8;\n        puVar35[-2] = local_fc;\n        puVar35[-3] = (uint)(pointer)local_d4;\n        puVar35[-4] = (uint)puVar32;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        puVar35[-5] = 0x160b8a;\n        std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));\n        local_b4._0_4_ = (Relobj *)0x0;\n        pIVar25 = (Input_section *)0x0;\nLAB_00160b99:\n        pIVar36 = pIVar25;\n        if ((Relobj *)local_b4 != (Relobj *)pIVar25) {\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }\n        puVar35[-3] = local_100;\n        puVar35[-4] = (uint)pIVar25;\n        puVar35[-5] = 0x160be4;\n        operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        puVar32 = (uint *)local_d8[-1];\n        if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;\n      }\n      local_b4._0_4_ = (Relobj *)puVar32;\n      do {\n        sis.shndx_ = *(uint *)(Relobj *)local_b4;\n        sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);\n        sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);\n        sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);\n        sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);\n        sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);\n        if (sis.p2align_ == 0) {\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }\n        else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }\n        puVar35[-3] = (uint)local_bc;\n        puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        puVar35[-5] = 0x160d3f;\n        Output_section::add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);\n        local_cc = (int)(pointer)local_d4 + local_c4;\n        local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);\n      } while ((Relobj *)*local_d8 != (Relobj *)local_b4);\n    }\nLAB_00160c00:\n    local_ec = local_ec + 1;\n    local_d8 = local_d8 + 3;\n    if (local_ec == local_f4) {\n      if (((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||\n         (output_section->type_ != 8)) {\n        *(uint *)dot_value = local_cc;\n        *(uint *)((int)dot_value + 4) = local_c8;\n      }\n      else {\n        local_c8 = *(uint *)((int)dot_value + 4);\n        local_cc = (uint)*dot_value;\n      }\n      *(uint *)&this->final_dot_value_ = local_cc;\n      *(uint *)((int)&this->final_dot_value_ + 4) = local_c8;\n      this->final_dot_section_ = *dot_section;\n      piVar22 = local_114;\n      if (local_110 != local_114) {\n        do {\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        } while (piVar22 != local_110);\n      }\n      local_b4 = uVar39;\n      puVar35[-4] = (uint)local_114;\n      puVar35[-5] = 0x160cfa;\n      operator_delete((void *)puVar35[-4]);\n      return;\n    }\n  } while( true );\n  iVar23 = iVar23 >> 1;\n  if (iVar23 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "anon_union_8_2_227b06d7_for_u1_ *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "size_t *psVar3;" primitive_type (pointer_declarator "*psVar3" * identifier) ;) (declaration "Input_file *pIVar4;" type_identifier (pointer_declarator "*pIVar4" * identifier) ;) (declaration "_func_int_varargs **pp_Var5;" type_identifier (pointer_declarator "**pp_Var5" * (pointer_declarator "*pp_Var5" * identifier)) ;) (declaration "_func_int_varargs *p_Var6;" type_identifier (pointer_declarator "*p_Var6" * identifier) ;) (declaration "pointer pcVar7;" type_identifier identifier ;) (declaration "Sort_wildcard SVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "pointer ppOVar12;" type_identifier identifier ;) (declaration "_List_node_base *p_Var13;" type_identifier (pointer_declarator "*p_Var13" * identifier) ;) (declaration "ulonglong uVar14;" type_identifier identifier ;) (declaration "longlong lVar15;" type_identifier identifier ;) (declaration "Input_section *pIVar16;" type_identifier (pointer_declarator "*pIVar16" * identifier) ;) (declaration "Relobj *pRVar17;" type_identifier (pointer_declarator "*pRVar17" * identifier) ;) (declaration "anon_union_4_4_139239c7_for_u2_ aVar18;" type_identifier identifier ;) (declaration "_Alloc_hider _Var19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "pointer pIVar24;" type_identifier identifier ;) (declaration "Input_section *pIVar25;" type_identifier (pointer_declarator "*pIVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "Output_section_data *pOVar27;" type_identifier (pointer_declarator "*pOVar27" * identifier) ;) (declaration "anon_union_8_2_227b06d7_for_u1_ *paVar28;" type_identifier (pointer_declarator "*paVar28" * identifier) ;) (declaration "byte bVar29;" type_identifier identifier ;) (declaration "pointer pIVar30;" type_identifier identifier ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "_List_node_base *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "uint *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "uint *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "uint *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "Input_section *pIVar36;" type_identifier (pointer_declarator "*pIVar36" * identifier) ;) (declaration "_List_node_base *p_Var37;" type_identifier (pointer_declarator "*p_Var37" * identifier) ;) (declaration "_List_node_base *p_Var38;" type_identifier (pointer_declarator "*p_Var38" * identifier) ;) (declaration "ulonglong uVar39;" type_identifier identifier ;) (declaration "uint local_134 [2];" type_identifier (array_declarator "local_134 [2]" identifier [ number_literal ]) ;) (declaration "size_t sStack_128;" primitive_type identifier ;) (declaration "uint auStack_124 [4];" type_identifier (array_declarator "auStack_124 [4]" identifier [ number_literal ]) ;) (declaration "int *local_114;" primitive_type (pointer_declarator "*local_114" * identifier) ;) (declaration "int *local_110;" primitive_type (pointer_declarator "*local_110" * identifier) ;) (declaration "uint *local_10c;" type_identifier (pointer_declarator "*local_10c" * identifier) ;) (declaration "uint *local_108;" type_identifier (pointer_declarator "*local_108" * identifier) ;) (declaration "anon_union_8_2_227b06d7_for_u1_ *local_104;" type_identifier (pointer_declarator "*local_104" * identifier) ;) (declaration "int local_100;" primitive_type identifier ;) (declaration "Sort_wildcard local_fc;" type_identifier identifier ;) (declaration "Sort_wildcard local_f8;" type_identifier identifier ;) (declaration "uint local_f4;" type_identifier identifier ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "ulonglong local_e4;" type_identifier identifier ;) (declaration "anon_union_8_2_227b06d7_for_u1_ *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "int *local_d8;" primitive_type (pointer_declarator "*local_d8" * identifier) ;) (declaration "undefined8 local_d4;" type_identifier identifier ;) (declaration "uint local_cc;" type_identifier identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "uint local_c4;" type_identifier identifier ;) (declaration "uint local_c0;" type_identifier identifier ;) (declaration "Input_section *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "undefined **local_b8;" type_identifier (pointer_declarator "**local_b8" * (pointer_declarator "*local_b8" * identifier)) ;) (declaration "undefined8 local_b4;" type_identifier identifier ;) (declaration "undefined1 local_a4 [24];" type_identifier (array_declarator "local_a4 [24]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_8c [2];" type_identifier (pointer_declarator "*local_8c [2]" * (array_declarator "local_8c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_84 [16];" type_identifier (array_declarator "local_84 [16]" identifier [ number_literal ]) ;) (declaration "Input_section sis;" type_identifier identifier ;) (declaration "Input_section_info isi;" type_identifier identifier ;) (expression_statement "local_b8 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_b8 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (ERROR "local_b4._0_4_ =\n       (Relobj *)\n       (this->input_section_patterns_).\n       super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::" (comma_expression "local_b4._0_4_ =\n       (Relobj *)\n       (this->input_section_patterns_).\n       super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std" (assignment_expression "local_b4._0_4_ =\n       (Relobj *)\n       (this->input_section_patterns_).\n       super__Vector_base<gold" (field_expression "local_b4._0_4_" identifier . field_identifier) = (binary_expression "(Relobj *)\n       (this->input_section_patterns_).\n       super__Vector_base<gold" (cast_expression "(Relobj *)\n       (this->input_section_patterns_).\n       super__Vector_base" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this->input_section_patterns_).\n       super__Vector_base" (parenthesized_expression "(this->input_section_patterns_)" ( (field_expression "this->input_section_patterns_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Output_section_element_input::Input_section_pattern" : : identifier : : identifier) , identifier) : : identifier < identifier : : identifier : :) (expression_statement "Input_section_pattern>_>\n       ._M_impl._M_finish;" (field_expression "Input_section_pattern>_>\n       ._M_impl._M_finish" (field_expression "Input_section_pattern>_>\n       ._M_impl" (binary_expression "Input_section_pattern>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (ERROR "pIVar24 = (this->input_section_patterns_).\n            super__Vector_base<gold::" (assignment_expression "pIVar24 = (this->input_section_patterns_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->input_section_patterns_).\n            super__Vector_base<gold" (field_expression "(this->input_section_patterns_).\n            super__Vector_base" (parenthesized_expression "(this->input_section_patterns_)" ( (field_expression "this->input_section_patterns_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_start;" statement_identifier (ERROR "::Input_section_pattern,_std::allocator<gold:" : : (comma_expression "Input_section_pattern,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section_pattern>_>\n            ._M_impl._M_start;" (field_expression "Input_section_pattern>_>\n            ._M_impl._M_start" (field_expression "Input_section_pattern>_>\n            ._M_impl" (binary_expression "Input_section_pattern>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "uVar33 = (int)(Relobj *)local_b4 - (int)pIVar24 >> 5;" (assignment_expression "uVar33 = (int)(Relobj *)local_b4 - (int)pIVar24 >> 5" identifier = (binary_expression "(int)(Relobj *)local_b4 - (int)pIVar24 >> 5" (binary_expression "(int)(Relobj *)local_b4 - (int)pIVar24" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) - (cast_expression "(int)pIVar24" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "local_cc = uVar33;" (assignment_expression "local_cc = uVar33" identifier = identifier) ;) (expression_statement "local_e4 = subalign;" (assignment_expression "local_e4 = subalign" identifier = identifier) ;) (if_statement "if (uVar33 != 0) {\n    pIVar30 = (pointer)(((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24);\n    bVar21 = false;\n    do {\n      if (pIVar24->sort != SORT_WILDCARD_NONE) {\n        bVar21 = true;\n      }\n      pIVar24 = pIVar24 + 1;\n    } while (pIVar30 != pIVar24);\n    if (bVar21) {\n      local_114 = (int *)operator_new(uVar33 * 0xc);\n      piVar22 = local_114;\n      uVar31 = uVar33;\n      do {\n        *piVar22 = 0;\n        piVar22[1] = 0;\n        piVar22[2] = 0;\n        uVar31 = uVar31 - 1;\n        piVar22 = piVar22 + 3;\n      } while (uVar31 != 0);\n      local_110 = local_114 + uVar33 * 3;\n      p_Var37 = (input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base._M_next;\n      local_f4 = local_cc;\n      goto joined_r0x001608d0;\n    }\n  }" if (parenthesized_expression "(uVar33 != 0)" ( (binary_expression "uVar33 != 0" identifier != number_literal) )) (compound_statement "{\n    pIVar30 = (pointer)(((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24);\n    bVar21 = false;\n    do {\n      if (pIVar24->sort != SORT_WILDCARD_NONE) {\n        bVar21 = true;\n      }\n      pIVar24 = pIVar24 + 1;\n    } while (pIVar30 != pIVar24);\n    if (bVar21) {\n      local_114 = (int *)operator_new(uVar33 * 0xc);\n      piVar22 = local_114;\n      uVar31 = uVar33;\n      do {\n        *piVar22 = 0;\n        piVar22[1] = 0;\n        piVar22[2] = 0;\n        uVar31 = uVar31 - 1;\n        piVar22 = piVar22 + 3;\n      } while (uVar31 != 0);\n      local_110 = local_114 + uVar33 * 3;\n      p_Var37 = (input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base._M_next;\n      local_f4 = local_cc;\n      goto joined_r0x001608d0;\n    }\n  }" { (expression_statement "pIVar30 = (pointer)(((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24);" (assignment_expression "pIVar30 = (pointer)(((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24)" identifier = (call_expression "(pointer)(((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24)" ( (binary_expression "((int)(Relobj *)local_b4 - (int)pIVar24) + (int)pIVar24" (parenthesized_expression "((int)(Relobj *)local_b4 - (int)pIVar24)" ( (binary_expression "(int)(Relobj *)local_b4 - (int)pIVar24" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) - (cast_expression "(int)pIVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)pIVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (do_statement "do {\n      if (pIVar24->sort != SORT_WILDCARD_NONE) {\n        bVar21 = true;\n      }\n      pIVar24 = pIVar24 + 1;\n    } while (pIVar30 != pIVar24);" do (compound_statement "{\n      if (pIVar24->sort != SORT_WILDCARD_NONE) {\n        bVar21 = true;\n      }\n      pIVar24 = pIVar24 + 1;\n    }" { (if_statement "if (pIVar24->sort != SORT_WILDCARD_NONE) {\n        bVar21 = true;\n      }" if (parenthesized_expression "(pIVar24->sort != SORT_WILDCARD_NONE)" ( (binary_expression "pIVar24->sort != SORT_WILDCARD_NONE" (field_expression "pIVar24->sort" identifier -> field_identifier) != identifier) )) (compound_statement "{\n        bVar21 = true;\n      }" { (expression_statement "bVar21 = true;" (assignment_expression "bVar21 = true" identifier = true) ;) })) (expression_statement "pIVar24 = pIVar24 + 1;" (assignment_expression "pIVar24 = pIVar24 + 1" identifier = (binary_expression "pIVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pIVar30 != pIVar24)" ( (binary_expression "pIVar30 != pIVar24" identifier != identifier) )) ;) (if_statement "if (bVar21) {\n      local_114 = (int *)operator_new(uVar33 * 0xc);\n      piVar22 = local_114;\n      uVar31 = uVar33;\n      do {\n        *piVar22 = 0;\n        piVar22[1] = 0;\n        piVar22[2] = 0;\n        uVar31 = uVar31 - 1;\n        piVar22 = piVar22 + 3;\n      } while (uVar31 != 0);\n      local_110 = local_114 + uVar33 * 3;\n      p_Var37 = (input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base._M_next;\n      local_f4 = local_cc;\n      goto joined_r0x001608d0;\n    }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n      local_114 = (int *)operator_new(uVar33 * 0xc);\n      piVar22 = local_114;\n      uVar31 = uVar33;\n      do {\n        *piVar22 = 0;\n        piVar22[1] = 0;\n        piVar22[2] = 0;\n        uVar31 = uVar31 - 1;\n        piVar22 = piVar22 + 3;\n      } while (uVar31 != 0);\n      local_110 = local_114 + uVar33 * 3;\n      p_Var37 = (input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base._M_next;\n      local_f4 = local_cc;\n      goto joined_r0x001608d0;\n    }" { (expression_statement "local_114 = (int *)operator_new(uVar33 * 0xc);" (assignment_expression "local_114 = (int *)operator_new(uVar33 * 0xc)" identifier = (cast_expression "(int *)operator_new(uVar33 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(uVar33 * 0xc)" identifier (argument_list "(uVar33 * 0xc)" ( (binary_expression "uVar33 * 0xc" identifier * number_literal) ))))) ;) (expression_statement "piVar22 = local_114;" (assignment_expression "piVar22 = local_114" identifier = identifier) ;) (expression_statement "uVar31 = uVar33;" (assignment_expression "uVar31 = uVar33" identifier = identifier) ;) (do_statement "do {\n        *piVar22 = 0;\n        piVar22[1] = 0;\n        piVar22[2] = 0;\n        uVar31 = uVar31 - 1;\n        piVar22 = piVar22 + 3;\n      } while (uVar31 != 0);" do (compound_statement "{\n        *piVar22 = 0;\n        piVar22[1] = 0;\n        piVar22[2] = 0;\n        uVar31 = uVar31 - 1;\n        piVar22 = piVar22 + 3;\n      }" { (expression_statement "*piVar22 = 0;" (assignment_expression "*piVar22 = 0" (pointer_expression "*piVar22" * identifier) = number_literal) ;) (expression_statement "piVar22[1] = 0;" (assignment_expression "piVar22[1] = 0" (subscript_expression "piVar22[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar22[2] = 0;" (assignment_expression "piVar22[2] = 0" (subscript_expression "piVar22[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar31 = uVar31 - 1;" (assignment_expression "uVar31 = uVar31 - 1" identifier = (binary_expression "uVar31 - 1" identifier - number_literal)) ;) (expression_statement "piVar22 = piVar22 + 3;" (assignment_expression "piVar22 = piVar22 + 3" identifier = (binary_expression "piVar22 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar31 != 0)" ( (binary_expression "uVar31 != 0" identifier != number_literal) )) ;) (expression_statement "local_110 = local_114 + uVar33 * 3;" (assignment_expression "local_110 = local_114 + uVar33 * 3" identifier = (binary_expression "local_114 + uVar33 * 3" identifier + (binary_expression "uVar33 * 3" identifier * number_literal))) ;) (expression_statement "p_Var37 = (input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base._M_next;" (assignment_expression "p_Var37 = (input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base._M_next" identifier = (field_expression "(input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base._M_next" (field_expression "(input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node.super__List_node_base" (field_expression "(input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_node" (field_expression "(input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl" (parenthesized_expression "(input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )" ( (ERROR "input_sections->\n                super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "input_sections->\n                super__List_base<gold::Output_section::Input_section,_std" (binary_expression "input_sections->\n                super__List_base<gold" (field_expression "input_sections->\n                super__List_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "local_f4 = local_cc;" (assignment_expression "local_f4 = local_cc" identifier = identifier) ;) (goto_statement "goto joined_r0x001608d0;" goto statement_identifier ;) })) })) (expression_statement "local_114 = (int *)operator_new(0xc);" (assignment_expression "local_114 = (int *)operator_new(0xc)" identifier = (cast_expression "(int *)operator_new(0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0xc)" identifier (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "local_f4 = 1;" (assignment_expression "local_f4 = 1" identifier = number_literal) ;) (expression_statement "*local_114 = 0;" (assignment_expression "*local_114 = 0" (pointer_expression "*local_114" * identifier) = number_literal) ;) (expression_statement "local_114[1] = 0;" (assignment_expression "local_114[1] = 0" (subscript_expression "local_114[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_114[2] = 0;" (assignment_expression "local_114[2] = 0" (subscript_expression "local_114[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_110 = local_114 + 3;" (assignment_expression "local_110 = local_114 + 3" identifier = (binary_expression "local_114 + 3" identifier + number_literal)) ;) (expression_statement "p_Var37 = (input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            )._M_impl._M_node.super__List_node_base._M_next;" (assignment_expression "p_Var37 = (input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            )._M_impl._M_node.super__List_node_base._M_next" identifier = (field_expression "(input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            )._M_impl._M_node.super__List_node_base._M_next" (field_expression "(input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            )._M_impl._M_node.super__List_node_base" (field_expression "(input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            )._M_impl._M_node" (field_expression "(input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            )._M_impl" (parenthesized_expression "(input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            )" ( (ERROR "input_sections->\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "input_sections->\n            super__List_base<gold::Output_section::Input_section,_std" (binary_expression "input_sections->\n            super__List_base<gold" (field_expression "input_sections->\n            super__List_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (labeled_statement "joined_r0x001608d0:\n  puVar35 = auStack_124 + 2;" statement_identifier : (expression_statement "puVar35 = auStack_124 + 2;" (assignment_expression "puVar35 = auStack_124 + 2" identifier = (binary_expression "auStack_124 + 2" identifier + number_literal)) ;)) (if_statement "if (p_Var37 != (_List_node_base *)input_sections) {\n    local_d4 = CONCAT44(local_d4._4_4_,&isi.section_name_.field_2);\n    local_bc = (Input_section *)local_a4;\n    puVar34 = auStack_124 + 2;\n    do {\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160572;\n      local_b4._0_4_ =\n           Output_section::Input_section::relobj(*(Input_section **)((int)puVar34 + -0x10));\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160586;\n      uVar33 = Output_section::Input_section::shndx(*(Input_section **)((int)puVar34 + -0x10));\n      isi.input_section_.shndx_ = (uint)p_Var37[1]._M_next;\n      isi.input_section_.p2align_ = (uint)p_Var37[1]._M_prev;\n      isi.input_section_.u1_.data_size._0_4_ = (p_Var37 + 1)[1]._M_next;\n      isi.input_section_.u1_.data_size._4_4_ = (p_Var37 + 1)[1]._M_prev;\n      isi.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3);\n      isi.section_name_.field_2._M_allocated_capacity =\n           isi.section_name_.field_2._M_allocated_capacity & 0xffffff00;\n      isi.input_section_.section_order_index_ = (uint)p_Var37[3]._M_prev;\n      isi.section_name_._M_dataplus._M_p = (pointer)local_d4;\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      isi.section_name_._M_string_length = 0;\n      isi.size_._0_4_ = (_List_node_base *)0x0;\n      isi.size_._4_4_ = (_List_node_base *)0x0;\n      isi.addralign_._0_4_ = 1;\n      isi.addralign_._4_4_ = 0;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x160600;\n        File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));\n      }\n      pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n      *(uint *)((int)puVar34 + -8) = uVar33;\n      *(Relobj **)((int)puVar34 + -0xc) = (Relobj *)local_b4;\n      *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      p_Var6 = pp_Var5[0x10];\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160619;\n      (*p_Var6)();\n      *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x16062a;\n      bVar21 = is_compressed_debug_section(*(char **)((int)puVar34 + -0x14));\n      if (bVar21) {\n        local_d8 = (int *)local_84;\n        *(undefined4 *)((int)puVar34 + -8) = 0;\n        *(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);\n        *(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;\n        *(undefined1 ***)((int)puVar34 + -0x14) = local_8c;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>();\n        *(undefined1 ***)((int)puVar34 + -0x10) = local_8c;\n        *(Input_section **)((int)puVar34 + -0x14) = &sis;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160674;\n        corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n        uVar20 = isi.section_name_.field_2._M_allocated_capacity;\n        _Var19 = isi.section_name_._M_dataplus;\n        paVar28 = &sis.u1_;\n        local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }\n        else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }\nLAB_001606d8:\n        sis.p2align_ = 0;\n        *(undefined1 *)sis.shndx_ = 0;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n        if ((int *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n      }\n      else {\n        *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;\n        std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n      }\n      puVar35 = (uint *)((int)puVar34 + -4);\n      if ((Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8)) {\n        *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      pRVar17 = (Relobj *)local_b4;\n      if (p_Var37[1]._M_next == (_List_node_base *)0xfffffffc) {\n        p_Var38 = p_Var37[3]._M_next;\n        isi.size_._0_4_ = p_Var38[1]._M_prev;\n        isi.size_._4_4_ = p_Var38[2]._M_next;\n        p_Var13 = p_Var38->_M_next[1]._M_prev;\n        if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }\n        else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }\n      }\n      else {\n        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        p_Var6 = pp_Var5[0xf];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;\n        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();\n        pp_Var5 = (pRVar17->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;\n        p_Var6 = pp_Var5[0x17];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;\n        isi.size_._4_4_ = extraout_EDX;\n        iVar23 = (*p_Var6)();\n        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);\n      }\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160791;\n        File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));\n      }\n      *(pointer *)((int)puVar34 + -0x10) =\n           (((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p;\n      *(Output_section_element_input **)((int)puVar34 + -0x14) = this;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x1607a8;\n      bVar21 = match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10));\n      if (bVar21) {\n        pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;\n        if ((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24) {\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar32 = (uint *)local_114[1];\n        piVar22 = local_114;\n        if (puVar32 == (uint *)local_114[2]) {\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }\n        else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }\nLAB_001612ad:\n        p_Var38 = p_Var37->_M_next;\n        psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar3 = *psVar3 - 1;\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;\n        std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      else {\nLAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      }\n      if (isi.section_name_._M_dataplus._M_p != (pointer)local_d4) {\n        *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      puVar34 = (uint *)((int)puVar34 + -4);\n      p_Var37 = p_Var38;\n    } while (p_Var38 != (_List_node_base *)input_sections);\n  }" if (parenthesized_expression "(p_Var37 != (_List_node_base *)input_sections)" ( (binary_expression "p_Var37 != (_List_node_base *)input_sections" identifier != (cast_expression "(_List_node_base *)input_sections" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    local_d4 = CONCAT44(local_d4._4_4_,&isi.section_name_.field_2);\n    local_bc = (Input_section *)local_a4;\n    puVar34 = auStack_124 + 2;\n    do {\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160572;\n      local_b4._0_4_ =\n           Output_section::Input_section::relobj(*(Input_section **)((int)puVar34 + -0x10));\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160586;\n      uVar33 = Output_section::Input_section::shndx(*(Input_section **)((int)puVar34 + -0x10));\n      isi.input_section_.shndx_ = (uint)p_Var37[1]._M_next;\n      isi.input_section_.p2align_ = (uint)p_Var37[1]._M_prev;\n      isi.input_section_.u1_.data_size._0_4_ = (p_Var37 + 1)[1]._M_next;\n      isi.input_section_.u1_.data_size._4_4_ = (p_Var37 + 1)[1]._M_prev;\n      isi.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3);\n      isi.section_name_.field_2._M_allocated_capacity =\n           isi.section_name_.field_2._M_allocated_capacity & 0xffffff00;\n      isi.input_section_.section_order_index_ = (uint)p_Var37[3]._M_prev;\n      isi.section_name_._M_dataplus._M_p = (pointer)local_d4;\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      isi.section_name_._M_string_length = 0;\n      isi.size_._0_4_ = (_List_node_base *)0x0;\n      isi.size_._4_4_ = (_List_node_base *)0x0;\n      isi.addralign_._0_4_ = 1;\n      isi.addralign_._4_4_ = 0;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x160600;\n        File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));\n      }\n      pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n      *(uint *)((int)puVar34 + -8) = uVar33;\n      *(Relobj **)((int)puVar34 + -0xc) = (Relobj *)local_b4;\n      *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      p_Var6 = pp_Var5[0x10];\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160619;\n      (*p_Var6)();\n      *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x16062a;\n      bVar21 = is_compressed_debug_section(*(char **)((int)puVar34 + -0x14));\n      if (bVar21) {\n        local_d8 = (int *)local_84;\n        *(undefined4 *)((int)puVar34 + -8) = 0;\n        *(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);\n        *(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;\n        *(undefined1 ***)((int)puVar34 + -0x14) = local_8c;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>();\n        *(undefined1 ***)((int)puVar34 + -0x10) = local_8c;\n        *(Input_section **)((int)puVar34 + -0x14) = &sis;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160674;\n        corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n        uVar20 = isi.section_name_.field_2._M_allocated_capacity;\n        _Var19 = isi.section_name_._M_dataplus;\n        paVar28 = &sis.u1_;\n        local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }\n        else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }\nLAB_001606d8:\n        sis.p2align_ = 0;\n        *(undefined1 *)sis.shndx_ = 0;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n        if ((int *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n      }\n      else {\n        *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;\n        std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n      }\n      puVar35 = (uint *)((int)puVar34 + -4);\n      if ((Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8)) {\n        *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      pRVar17 = (Relobj *)local_b4;\n      if (p_Var37[1]._M_next == (_List_node_base *)0xfffffffc) {\n        p_Var38 = p_Var37[3]._M_next;\n        isi.size_._0_4_ = p_Var38[1]._M_prev;\n        isi.size_._4_4_ = p_Var38[2]._M_next;\n        p_Var13 = p_Var38->_M_next[1]._M_prev;\n        if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }\n        else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }\n      }\n      else {\n        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        p_Var6 = pp_Var5[0xf];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;\n        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();\n        pp_Var5 = (pRVar17->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;\n        p_Var6 = pp_Var5[0x17];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;\n        isi.size_._4_4_ = extraout_EDX;\n        iVar23 = (*p_Var6)();\n        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);\n      }\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160791;\n        File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));\n      }\n      *(pointer *)((int)puVar34 + -0x10) =\n           (((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p;\n      *(Output_section_element_input **)((int)puVar34 + -0x14) = this;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x1607a8;\n      bVar21 = match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10));\n      if (bVar21) {\n        pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;\n        if ((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24) {\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar32 = (uint *)local_114[1];\n        piVar22 = local_114;\n        if (puVar32 == (uint *)local_114[2]) {\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }\n        else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }\nLAB_001612ad:\n        p_Var38 = p_Var37->_M_next;\n        psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar3 = *psVar3 - 1;\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;\n        std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      else {\nLAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      }\n      if (isi.section_name_._M_dataplus._M_p != (pointer)local_d4) {\n        *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      puVar34 = (uint *)((int)puVar34 + -4);\n      p_Var37 = p_Var38;\n    } while (p_Var38 != (_List_node_base *)input_sections);\n  }" { (expression_statement "local_d4 = CONCAT44(local_d4._4_4_,&isi.section_name_.field_2);" (assignment_expression "local_d4 = CONCAT44(local_d4._4_4_,&isi.section_name_.field_2)" identifier = (call_expression "CONCAT44(local_d4._4_4_,&isi.section_name_.field_2)" identifier (argument_list "(local_d4._4_4_,&isi.section_name_.field_2)" ( (field_expression "local_d4._4_4_" identifier . field_identifier) , (pointer_expression "&isi.section_name_.field_2" & (field_expression "isi.section_name_.field_2" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier)) )))) ;) (expression_statement "local_bc = (Input_section *)local_a4;" (assignment_expression "local_bc = (Input_section *)local_a4" identifier = (cast_expression "(Input_section *)local_a4" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar34 = auStack_124 + 2;" (assignment_expression "puVar34 = auStack_124 + 2" identifier = (binary_expression "auStack_124 + 2" identifier + number_literal)) ;) (do_statement "do {\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160572;\n      local_b4._0_4_ =\n           Output_section::Input_section::relobj(*(Input_section **)((int)puVar34 + -0x10));\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160586;\n      uVar33 = Output_section::Input_section::shndx(*(Input_section **)((int)puVar34 + -0x10));\n      isi.input_section_.shndx_ = (uint)p_Var37[1]._M_next;\n      isi.input_section_.p2align_ = (uint)p_Var37[1]._M_prev;\n      isi.input_section_.u1_.data_size._0_4_ = (p_Var37 + 1)[1]._M_next;\n      isi.input_section_.u1_.data_size._4_4_ = (p_Var37 + 1)[1]._M_prev;\n      isi.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3);\n      isi.section_name_.field_2._M_allocated_capacity =\n           isi.section_name_.field_2._M_allocated_capacity & 0xffffff00;\n      isi.input_section_.section_order_index_ = (uint)p_Var37[3]._M_prev;\n      isi.section_name_._M_dataplus._M_p = (pointer)local_d4;\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      isi.section_name_._M_string_length = 0;\n      isi.size_._0_4_ = (_List_node_base *)0x0;\n      isi.size_._4_4_ = (_List_node_base *)0x0;\n      isi.addralign_._0_4_ = 1;\n      isi.addralign_._4_4_ = 0;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x160600;\n        File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));\n      }\n      pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n      *(uint *)((int)puVar34 + -8) = uVar33;\n      *(Relobj **)((int)puVar34 + -0xc) = (Relobj *)local_b4;\n      *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      p_Var6 = pp_Var5[0x10];\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160619;\n      (*p_Var6)();\n      *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x16062a;\n      bVar21 = is_compressed_debug_section(*(char **)((int)puVar34 + -0x14));\n      if (bVar21) {\n        local_d8 = (int *)local_84;\n        *(undefined4 *)((int)puVar34 + -8) = 0;\n        *(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);\n        *(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;\n        *(undefined1 ***)((int)puVar34 + -0x14) = local_8c;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>();\n        *(undefined1 ***)((int)puVar34 + -0x10) = local_8c;\n        *(Input_section **)((int)puVar34 + -0x14) = &sis;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160674;\n        corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n        uVar20 = isi.section_name_.field_2._M_allocated_capacity;\n        _Var19 = isi.section_name_._M_dataplus;\n        paVar28 = &sis.u1_;\n        local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }\n        else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }\nLAB_001606d8:\n        sis.p2align_ = 0;\n        *(undefined1 *)sis.shndx_ = 0;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n        if ((int *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n      }\n      else {\n        *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;\n        std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n      }\n      puVar35 = (uint *)((int)puVar34 + -4);\n      if ((Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8)) {\n        *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      pRVar17 = (Relobj *)local_b4;\n      if (p_Var37[1]._M_next == (_List_node_base *)0xfffffffc) {\n        p_Var38 = p_Var37[3]._M_next;\n        isi.size_._0_4_ = p_Var38[1]._M_prev;\n        isi.size_._4_4_ = p_Var38[2]._M_next;\n        p_Var13 = p_Var38->_M_next[1]._M_prev;\n        if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }\n        else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }\n      }\n      else {\n        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        p_Var6 = pp_Var5[0xf];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;\n        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();\n        pp_Var5 = (pRVar17->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;\n        p_Var6 = pp_Var5[0x17];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;\n        isi.size_._4_4_ = extraout_EDX;\n        iVar23 = (*p_Var6)();\n        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);\n      }\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160791;\n        File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));\n      }\n      *(pointer *)((int)puVar34 + -0x10) =\n           (((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p;\n      *(Output_section_element_input **)((int)puVar34 + -0x14) = this;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x1607a8;\n      bVar21 = match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10));\n      if (bVar21) {\n        pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;\n        if ((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24) {\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar32 = (uint *)local_114[1];\n        piVar22 = local_114;\n        if (puVar32 == (uint *)local_114[2]) {\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }\n        else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }\nLAB_001612ad:\n        p_Var38 = p_Var37->_M_next;\n        psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar3 = *psVar3 - 1;\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;\n        std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      else {\nLAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      }\n      if (isi.section_name_._M_dataplus._M_p != (pointer)local_d4) {\n        *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      puVar34 = (uint *)((int)puVar34 + -4);\n      p_Var37 = p_Var38;\n    } while (p_Var38 != (_List_node_base *)input_sections);" do (compound_statement "{\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160572;\n      local_b4._0_4_ =\n           Output_section::Input_section::relobj(*(Input_section **)((int)puVar34 + -0x10));\n      *(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160586;\n      uVar33 = Output_section::Input_section::shndx(*(Input_section **)((int)puVar34 + -0x10));\n      isi.input_section_.shndx_ = (uint)p_Var37[1]._M_next;\n      isi.input_section_.p2align_ = (uint)p_Var37[1]._M_prev;\n      isi.input_section_.u1_.data_size._0_4_ = (p_Var37 + 1)[1]._M_next;\n      isi.input_section_.u1_.data_size._4_4_ = (p_Var37 + 1)[1]._M_prev;\n      isi.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3);\n      isi.section_name_.field_2._M_allocated_capacity =\n           isi.section_name_.field_2._M_allocated_capacity & 0xffffff00;\n      isi.input_section_.section_order_index_ = (uint)p_Var37[3]._M_prev;\n      isi.section_name_._M_dataplus._M_p = (pointer)local_d4;\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      isi.section_name_._M_string_length = 0;\n      isi.size_._0_4_ = (_List_node_base *)0x0;\n      isi.size_._4_4_ = (_List_node_base *)0x0;\n      isi.addralign_._0_4_ = 1;\n      isi.addralign_._4_4_ = 0;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x160600;\n        File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));\n      }\n      pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n      *(uint *)((int)puVar34 + -8) = uVar33;\n      *(Relobj **)((int)puVar34 + -0xc) = (Relobj *)local_b4;\n      *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */\n      p_Var6 = pp_Var5[0x10];\n      *(undefined4 *)((int)puVar34 + -0x14) = 0x160619;\n      (*p_Var6)();\n      *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x16062a;\n      bVar21 = is_compressed_debug_section(*(char **)((int)puVar34 + -0x14));\n      if (bVar21) {\n        local_d8 = (int *)local_84;\n        *(undefined4 *)((int)puVar34 + -8) = 0;\n        *(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);\n        *(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;\n        *(undefined1 ***)((int)puVar34 + -0x14) = local_8c;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>();\n        *(undefined1 ***)((int)puVar34 + -0x10) = local_8c;\n        *(Input_section **)((int)puVar34 + -0x14) = &sis;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160674;\n        corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n        uVar20 = isi.section_name_.field_2._M_allocated_capacity;\n        _Var19 = isi.section_name_._M_dataplus;\n        paVar28 = &sis.u1_;\n        local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }\n        else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }\nLAB_001606d8:\n        sis.p2align_ = 0;\n        *(undefined1 *)sis.shndx_ = 0;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n        if ((int *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n      }\n      else {\n        *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;\n        std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n      }\n      puVar35 = (uint *)((int)puVar34 + -4);\n      if ((Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8)) {\n        *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      pRVar17 = (Relobj *)local_b4;\n      if (p_Var37[1]._M_next == (_List_node_base *)0xfffffffc) {\n        p_Var38 = p_Var37[3]._M_next;\n        isi.size_._0_4_ = p_Var38[1]._M_prev;\n        isi.size_._4_4_ = p_Var38[2]._M_next;\n        p_Var13 = p_Var38->_M_next[1]._M_prev;\n        if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }\n        else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }\n      }\n      else {\n        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        p_Var6 = pp_Var5[0xf];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;\n        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();\n        pp_Var5 = (pRVar17->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;\n        p_Var6 = pp_Var5[0x17];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;\n        isi.size_._4_4_ = extraout_EDX;\n        iVar23 = (*p_Var6)();\n        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);\n      }\n      pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;\n      if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160791;\n        File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));\n      }\n      *(pointer *)((int)puVar34 + -0x10) =\n           (((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p;\n      *(Output_section_element_input **)((int)puVar34 + -0x14) = this;\n                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */\n      *(undefined4 *)((int)puVar34 + -0x18) = 0x1607a8;\n      bVar21 = match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10));\n      if (bVar21) {\n        pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;\n        if ((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24) {\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar32 = (uint *)local_114[1];\n        piVar22 = local_114;\n        if (puVar32 == (uint *)local_114[2]) {\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }\n        else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }\nLAB_001612ad:\n        p_Var38 = p_Var37->_M_next;\n        psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar3 = *psVar3 - 1;\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;\n        std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      else {\nLAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      }\n      if (isi.section_name_._M_dataplus._M_p != (pointer)local_d4) {\n        *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      puVar34 = (uint *)((int)puVar34 + -4);\n      p_Var37 = p_Var38;\n    }" { (expression_statement "*(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;" (assignment_expression "*(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1" (pointer_expression "*(_List_node_base **)((int)puVar34 + -0x10)" * (cast_expression "(_List_node_base **)((int)puVar34 + -0x10)" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "p_Var37 + 1" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x160572;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x160572" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_b4._0_4_ =\n           Output_section::" (assignment_expression "local_b4._0_4_ =\n           Output_section" (field_expression "local_b4._0_4_" identifier . field_identifier) = identifier) : :) (labeled_statement "Input_section::relobj(*(Input_section **)((int)puVar34 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "relobj(*(Input_section **)((int)puVar34 + -0x10));" (call_expression "relobj(*(Input_section **)((int)puVar34 + -0x10))" identifier (argument_list "(*(Input_section **)((int)puVar34 + -0x10))" ( (pointer_expression "*(Input_section **)((int)puVar34 + -0x10)" * (cast_expression "(Input_section **)((int)puVar34 + -0x10)" ( (type_descriptor "Input_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "*(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1;" (assignment_expression "*(_List_node_base **)((int)puVar34 + -0x10) = p_Var37 + 1" (pointer_expression "*(_List_node_base **)((int)puVar34 + -0x10)" * (cast_expression "(_List_node_base **)((int)puVar34 + -0x10)" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "p_Var37 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x160586;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x160586" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "uVar33 = Output_section::" (assignment_expression "uVar33 = Output_section" identifier = identifier) : :) (labeled_statement "Input_section::shndx(*(Input_section **)((int)puVar34 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "shndx(*(Input_section **)((int)puVar34 + -0x10));" (call_expression "shndx(*(Input_section **)((int)puVar34 + -0x10))" identifier (argument_list "(*(Input_section **)((int)puVar34 + -0x10))" ( (pointer_expression "*(Input_section **)((int)puVar34 + -0x10)" * (cast_expression "(Input_section **)((int)puVar34 + -0x10)" ( (type_descriptor "Input_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "isi.input_section_.shndx_ = (uint)p_Var37[1]._M_next;" (assignment_expression "isi.input_section_.shndx_ = (uint)p_Var37[1]._M_next" (field_expression "isi.input_section_.shndx_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier) = (cast_expression "(uint)p_Var37[1]._M_next" ( (type_descriptor "uint" type_identifier) ) (field_expression "p_Var37[1]._M_next" (subscript_expression "p_Var37[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "isi.input_section_.p2align_ = (uint)p_Var37[1]._M_prev;" (assignment_expression "isi.input_section_.p2align_ = (uint)p_Var37[1]._M_prev" (field_expression "isi.input_section_.p2align_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier) = (cast_expression "(uint)p_Var37[1]._M_prev" ( (type_descriptor "uint" type_identifier) ) (field_expression "p_Var37[1]._M_prev" (subscript_expression "p_Var37[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "isi.input_section_.u1_.data_size._0_4_ = (p_Var37 + 1)[1]._M_next;" (assignment_expression "isi.input_section_.u1_.data_size._0_4_ = (p_Var37 + 1)[1]._M_next" (field_expression "isi.input_section_.u1_.data_size._0_4_" (field_expression "isi.input_section_.u1_.data_size" (field_expression "isi.input_section_.u1_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (field_expression "(p_Var37 + 1)[1]._M_next" (subscript_expression "(p_Var37 + 1)[1]" (parenthesized_expression "(p_Var37 + 1)" ( (binary_expression "p_Var37 + 1" identifier + number_literal) )) [ number_literal ]) . field_identifier)) ;) (expression_statement "isi.input_section_.u1_.data_size._4_4_ = (p_Var37 + 1)[1]._M_prev;" (assignment_expression "isi.input_section_.u1_.data_size._4_4_ = (p_Var37 + 1)[1]._M_prev" (field_expression "isi.input_section_.u1_.data_size._4_4_" (field_expression "isi.input_section_.u1_.data_size" (field_expression "isi.input_section_.u1_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (field_expression "(p_Var37 + 1)[1]._M_prev" (subscript_expression "(p_Var37 + 1)[1]" (parenthesized_expression "(p_Var37 + 1)" ( (binary_expression "p_Var37 + 1" identifier + number_literal) )) [ number_literal ]) . field_identifier)) ;) (expression_statement "isi.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3);" (assignment_expression "isi.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3)" (field_expression "isi.input_section_.u2_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(p_Var37 + 3)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var37 + 3)" ( (binary_expression "p_Var37 + 3" identifier + number_literal) ))))) ;) (expression_statement "isi.section_name_.field_2._M_allocated_capacity =\n           isi.section_name_.field_2._M_allocated_capacity & 0xffffff00;" (assignment_expression "isi.section_name_.field_2._M_allocated_capacity =\n           isi.section_name_.field_2._M_allocated_capacity & 0xffffff00" (field_expression "isi.section_name_.field_2._M_allocated_capacity" (field_expression "isi.section_name_.field_2" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (binary_expression "isi.section_name_.field_2._M_allocated_capacity & 0xffffff00" (field_expression "isi.section_name_.field_2._M_allocated_capacity" (field_expression "isi.section_name_.field_2" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) & number_literal)) ;) (expression_statement "isi.input_section_.section_order_index_ = (uint)p_Var37[3]._M_prev;" (assignment_expression "isi.input_section_.section_order_index_ = (uint)p_Var37[3]._M_prev" (field_expression "isi.input_section_.section_order_index_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier) = (cast_expression "(uint)p_Var37[3]._M_prev" ( (type_descriptor "uint" type_identifier) ) (field_expression "p_Var37[3]._M_prev" (subscript_expression "p_Var37[3]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "isi.section_name_._M_dataplus._M_p = (pointer)local_d4;" (assignment_expression "isi.section_name_._M_dataplus._M_p = (pointer)local_d4" (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)local_d4" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;" (assignment_expression "pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_" identifier = (field_expression "(((Relobj *)local_b4)->super_Object).input_file_" (parenthesized_expression "(((Relobj *)local_b4)->super_Object)" ( (field_expression "((Relobj *)local_b4)->super_Object" (parenthesized_expression "((Relobj *)local_b4)" ( (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "isi.section_name_._M_string_length = 0;" (assignment_expression "isi.section_name_._M_string_length = 0" (field_expression "isi.section_name_._M_string_length" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "isi.size_._0_4_ = (_List_node_base *)0x0;" (assignment_expression "isi.size_._0_4_ = (_List_node_base *)0x0" (field_expression "isi.size_._0_4_" (field_expression "isi.size_" identifier . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "isi.size_._4_4_ = (_List_node_base *)0x0;" (assignment_expression "isi.size_._4_4_ = (_List_node_base *)0x0" (field_expression "isi.size_._4_4_" (field_expression "isi.size_" identifier . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "isi.addralign_._0_4_ = 1;" (assignment_expression "isi.addralign_._0_4_ = 1" (field_expression "isi.addralign_._0_4_" (field_expression "isi.addralign_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "isi.addralign_._4_4_ = 0;" (assignment_expression "isi.addralign_._4_4_ = 0" (field_expression "isi.addralign_._4_4_" (field_expression "isi.addralign_" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x160600;\n        File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));\n      }" if (parenthesized_expression "(pIVar4 != (Input_file *)0x0)" ( (binary_expression "pIVar4 != (Input_file *)0x0" identifier != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;\n                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x160600;\n        File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));\n      }" { (expression_statement "*(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0xc) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)puVar34 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar34 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_;" (assignment_expression "*(File_read **)((int)puVar34 + -0x10) = &pIVar4->file_" (pointer_expression "*(File_read **)((int)puVar34 + -0x10)" * (cast_expression "(File_read **)((int)puVar34 + -0x10)" ( (type_descriptor "File_read **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&pIVar4->file_" & (field_expression "pIVar4->file_" identifier -> field_identifier))) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x160600;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x160600" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "File_read::lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc));" (call_expression "lock(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc))" identifier (argument_list "(*(File_read **)((int)puVar34 + -0x10),*(Task **)((int)puVar34 + -0xc))" ( (pointer_expression "*(File_read **)((int)puVar34 + -0x10)" * (cast_expression "(File_read **)((int)puVar34 + -0x10)" ( (type_descriptor "File_read **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Task **)((int)puVar34 + -0xc)" * (cast_expression "(Task **)((int)puVar34 + -0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;" (assignment_expression "pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object" identifier = (field_expression "(((Relobj *)local_b4)->super_Object)._vptr_Object" (parenthesized_expression "(((Relobj *)local_b4)->super_Object)" ( (field_expression "((Relobj *)local_b4)->super_Object" (parenthesized_expression "((Relobj *)local_b4)" ( (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(uint *)((int)puVar34 + -8) = uVar33;" (assignment_expression "*(uint *)((int)puVar34 + -8) = uVar33" (pointer_expression "*(uint *)((int)puVar34 + -8)" * (cast_expression "(uint *)((int)puVar34 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Relobj **)((int)puVar34 + -0xc) = (Relobj *)local_b4;" (assignment_expression "*(Relobj **)((int)puVar34 + -0xc) = (Relobj *)local_b4" (pointer_expression "*(Relobj **)((int)puVar34 + -0xc)" * (cast_expression "(Relobj **)((int)puVar34 + -0xc)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(Input_section **)((int)puVar34 + -0x10) = local_bc;" (assignment_expression "*(Input_section **)((int)puVar34 + -0x10) = local_bc" (pointer_expression "*(Input_section **)((int)puVar34 + -0x10)" * (cast_expression "(Input_section **)((int)puVar34 + -0x10)" ( (type_descriptor "Input_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "p_Var6 = pp_Var5[0x10];" (assignment_expression "p_Var6 = pp_Var5[0x10]" identifier = (subscript_expression "pp_Var5[0x10]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x160619;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x160619" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*p_Var6)();" (call_expression "(*p_Var6)()" (parenthesized_expression "(*p_Var6)" ( (pointer_expression "*p_Var6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "local_a4._0_4_" identifier . field_identifier)) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x16062a;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x16062a" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "bVar21 = is_compressed_debug_section(*(char **)((int)puVar34 + -0x14));" (assignment_expression "bVar21 = is_compressed_debug_section(*(char **)((int)puVar34 + -0x14))" identifier = (call_expression "is_compressed_debug_section(*(char **)((int)puVar34 + -0x14))" identifier (argument_list "(*(char **)((int)puVar34 + -0x14))" ( (pointer_expression "*(char **)((int)puVar34 + -0x14)" * (cast_expression "(char **)((int)puVar34 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (bVar21) {\n        local_d8 = (int *)local_84;\n        *(undefined4 *)((int)puVar34 + -8) = 0;\n        *(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);\n        *(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;\n        *(undefined1 ***)((int)puVar34 + -0x14) = local_8c;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>();\n        *(undefined1 ***)((int)puVar34 + -0x10) = local_8c;\n        *(Input_section **)((int)puVar34 + -0x14) = &sis;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160674;\n        corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n        uVar20 = isi.section_name_.field_2._M_allocated_capacity;\n        _Var19 = isi.section_name_._M_dataplus;\n        paVar28 = &sis.u1_;\n        local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }\n        else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }\nLAB_001606d8:\n        sis.p2align_ = 0;\n        *(undefined1 *)sis.shndx_ = 0;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n        if ((int *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n      }\n      else {\n        *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;\n        std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n      }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n        local_d8 = (int *)local_84;\n        *(undefined4 *)((int)puVar34 + -8) = 0;\n        *(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);\n        *(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;\n        *(undefined1 ***)((int)puVar34 + -0x14) = local_8c;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>();\n        *(undefined1 ***)((int)puVar34 + -0x10) = local_8c;\n        *(Input_section **)((int)puVar34 + -0x14) = &sis;\n                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160674;\n        corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n        uVar20 = isi.section_name_.field_2._M_allocated_capacity;\n        _Var19 = isi.section_name_._M_dataplus;\n        paVar28 = &sis.u1_;\n        local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }\n        else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }\nLAB_001606d8:\n        sis.p2align_ = 0;\n        *(undefined1 *)sis.shndx_ = 0;\n        if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n        if ((int *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }\n      }" { (expression_statement "local_d8 = (int *)local_84;" (assignment_expression "local_d8 = (int *)local_84" identifier = (cast_expression "(int *)local_84" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)puVar34 + -8) = 0" (pointer_expression "*(undefined4 *)((int)puVar34 + -8)" * (cast_expression "(undefined4 *)((int)puVar34 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_);" (assignment_expression "*(undefined1 **)((int)puVar34 + -0xc) =\n             (undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_)" (pointer_expression "*(undefined1 **)((int)puVar34 + -0xc)" * (cast_expression "(undefined1 **)((int)puVar34 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)\n             ((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_)" ( (binary_expression "(int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data + local_a4._4_4_" (cast_expression "(int)&((Output_data *)local_a4._0_4_)->_vptr_Output_data" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Output_data *)local_a4._0_4_)->_vptr_Output_data" & (field_expression "((Output_data *)local_a4._0_4_)->_vptr_Output_data" (parenthesized_expression "((Output_data *)local_a4._0_4_)" ( (cast_expression "(Output_data *)local_a4._0_4_" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_a4._0_4_" identifier . field_identifier)) )) -> field_identifier))) + (field_expression "local_a4._4_4_" identifier . field_identifier)) )))) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x10) = local_a4._0_4_" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "local_a4._0_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined1 ***)((int)puVar34 + -0x14) = local_8c;" (assignment_expression "*(undefined1 ***)((int)puVar34 + -0x14) = local_8c" (pointer_expression "*(undefined1 ***)((int)puVar34 + -0x14)" * (cast_expression "(undefined1 ***)((int)puVar34 + -0x14)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x160662;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x160662" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_8c[0] = (undefined1 *)local_d8;" (assignment_expression "local_8c[0] = (undefined1 *)local_d8" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = (cast_expression "(undefined1 *)local_d8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>();" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char*>();" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*>()" * > ( )) ;)) (expression_statement "*(undefined1 ***)((int)puVar34 + -0x10) = local_8c;" (assignment_expression "*(undefined1 ***)((int)puVar34 + -0x10) = local_8c" (pointer_expression "*(undefined1 ***)((int)puVar34 + -0x10)" * (cast_expression "(undefined1 ***)((int)puVar34 + -0x10)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Input_section **)((int)puVar34 + -0x14) = &sis;" (assignment_expression "*(Input_section **)((int)puVar34 + -0x14) = &sis" (pointer_expression "*(Input_section **)((int)puVar34 + -0x14)" * (cast_expression "(Input_section **)((int)puVar34 + -0x14)" ( (type_descriptor "Input_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&sis" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x160674;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x160674" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));" (call_expression "corresponding_uncompressed_section_name\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10))" identifier (argument_list "(*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10))" ( (pointer_expression "*(string **)((int)puVar34 + -0x14)" * (cast_expression "(string **)((int)puVar34 + -0x14)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(string **)((int)puVar34 + -0x10)" * (cast_expression "(string **)((int)puVar34 + -0x10)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "uVar20 = isi.section_name_.field_2._M_allocated_capacity;" (assignment_expression "uVar20 = isi.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "isi.section_name_.field_2._M_allocated_capacity" (field_expression "isi.section_name_.field_2" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "_Var19 = isi.section_name_._M_dataplus;" (assignment_expression "_Var19 = isi.section_name_._M_dataplus" identifier = (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar28 = &sis.u1_;" (assignment_expression "paVar28 = &sis.u1_" identifier = (pointer_expression "&sis.u1_" & (field_expression "sis.u1_" identifier . field_identifier))) ;) (expression_statement "local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_;" (assignment_expression "local_dc = (anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_" identifier = (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sis.shndx_" identifier . field_identifier))) ;) (if_statement "if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28) {\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }\n        else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }" if (parenthesized_expression "((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28)" ( (binary_expression "(anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ == paVar28" (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sis.shndx_" identifier . field_identifier)) == identifier) )) (compound_statement "{\n          if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';\n        }" { (if_statement "if (sis.p2align_ != 0) {\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }" if (parenthesized_expression "(sis.p2align_ != 0)" ( (binary_expression "sis.p2align_ != 0" (field_expression "sis.p2align_" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }\n            local_dc = paVar28;\n            *(uint *)((int)puVar34 + -0xc) = sis.p2align_;\n            *(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;\n            *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x161301;\n            memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));\n            paVar28 = local_dc;\n          }" { (if_statement "if (sis.p2align_ == 1) {\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }" if (parenthesized_expression "(sis.p2align_ == 1)" ( (binary_expression "sis.p2align_ == 1" (field_expression "sis.p2align_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n              *isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;\n              isi.section_name_._M_string_length = sis.p2align_;\n              isi.section_name_._M_dataplus._M_p[1] = '\0';\n              goto LAB_001606d8;\n            }" { (expression_statement "*isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_;" (assignment_expression "*isi.section_name_._M_dataplus._M_p = sis.u1_.data_size._0_1_" (pointer_expression "*isi.section_name_._M_dataplus._M_p" * (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) = (field_expression "sis.u1_.data_size._0_1_" (field_expression "sis.u1_.data_size" (field_expression "sis.u1_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "isi.section_name_._M_string_length = sis.p2align_;" (assignment_expression "isi.section_name_._M_string_length = sis.p2align_" (field_expression "isi.section_name_._M_string_length" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) = (field_expression "sis.p2align_" identifier . field_identifier)) ;) (expression_statement "isi.section_name_._M_dataplus._M_p[1] = '\0';" (assignment_expression "isi.section_name_._M_dataplus._M_p[1] = '\0'" (subscript_expression "isi.section_name_._M_dataplus._M_p[1]" (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_001606d8;" goto statement_identifier ;) })) (expression_statement "local_dc = paVar28;" (assignment_expression "local_dc = paVar28" identifier = identifier) ;) (expression_statement "*(uint *)((int)puVar34 + -0xc) = sis.p2align_;" (assignment_expression "*(uint *)((int)puVar34 + -0xc) = sis.p2align_" (pointer_expression "*(uint *)((int)puVar34 + -0xc)" * (cast_expression "(uint *)((int)puVar34 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "sis.p2align_" identifier . field_identifier)) ;) (expression_statement "*(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28;" (assignment_expression "*(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10) = paVar28" (pointer_expression "*(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10)" * (cast_expression "(anon_union_8_2_227b06d7_for_u1_ **)((int)puVar34 + -0x10)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar34 + -0x14)" * (cast_expression "(pointer *)((int)puVar34 + -0x14)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x161301;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x161301" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc));" (call_expression "memcpy(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc))" identifier (argument_list "(*(void **)((int)puVar34 + -0x14),*(void **)((int)puVar34 + -0x10),\n                   *(size_t *)((int)puVar34 + -0xc))" ( (pointer_expression "*(void **)((int)puVar34 + -0x14)" * (cast_expression "(void **)((int)puVar34 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)puVar34 + -0x10)" * (cast_expression "(void **)((int)puVar34 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)puVar34 + -0xc)" * (cast_expression "(size_t *)((int)puVar34 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "paVar28 = local_dc;" (assignment_expression "paVar28 = local_dc" identifier = identifier) ;) })) (expression_statement "isi.section_name_._M_string_length = sis.p2align_;" (assignment_expression "isi.section_name_._M_string_length = sis.p2align_" (field_expression "isi.section_name_._M_string_length" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) = (field_expression "sis.p2align_" identifier . field_identifier)) ;) (expression_statement "isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0';" (assignment_expression "isi.section_name_._M_dataplus._M_p[sis.p2align_] = '\0'" (subscript_expression "isi.section_name_._M_dataplus._M_p[sis.p2align_]" (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) [ (field_expression "sis.p2align_" identifier . field_identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }" else (compound_statement "{\n          local_e8 = sis.u1_.data_size._0_4_;\n          if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }\n          isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n          isi.section_name_._M_string_length = sis.p2align_;\n          isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          sis.shndx_ = (uint)paVar28;\n          paVar28 = &sis.u1_;\n        }" { (expression_statement "local_e8 = sis.u1_.data_size._0_4_;" (assignment_expression "local_e8 = sis.u1_.data_size._0_4_" identifier = (field_expression "sis.u1_.data_size._0_4_" (field_expression "sis.u1_.data_size" (field_expression "sis.u1_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (isi.section_name_._M_dataplus._M_p == (pointer)local_d4) {\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }\n          else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }" if (parenthesized_expression "(isi.section_name_._M_dataplus._M_p == (pointer)local_d4)" ( (binary_expression "isi.section_name_._M_dataplus._M_p == (pointer)local_d4" (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) == (cast_expression "(pointer)local_d4" ( (type_descriptor "pointer" type_identifier) ) identifier)) )) (compound_statement "{\n            isi.section_name_._M_string_length = sis.p2align_;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n          }" { (expression_statement "isi.section_name_._M_string_length = sis.p2align_;" (assignment_expression "isi.section_name_._M_string_length = sis.p2align_" (field_expression "isi.section_name_._M_string_length" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) = (field_expression "sis.p2align_" identifier . field_identifier)) ;) (expression_statement "isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;" (assignment_expression "isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_" (field_expression "isi.section_name_.field_2._M_allocated_capacity" (field_expression "isi.section_name_.field_2" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "sis.u1_.data_size._0_4_" (field_expression "sis.u1_.data_size" (field_expression "sis.u1_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;" (assignment_expression "isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_" (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)sis.shndx_" ( (type_descriptor "pointer" type_identifier) ) (field_expression "sis.shndx_" identifier . field_identifier))) ;) }) (else_clause "else {\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }" else (compound_statement "{\n            isi.section_name_._M_string_length = sis.p2align_;\n            local_ec = isi.section_name_.field_2._M_allocated_capacity;\n            isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;\n            isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;\n            if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }\n          }" { (expression_statement "isi.section_name_._M_string_length = sis.p2align_;" (assignment_expression "isi.section_name_._M_string_length = sis.p2align_" (field_expression "isi.section_name_._M_string_length" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) = (field_expression "sis.p2align_" identifier . field_identifier)) ;) (expression_statement "local_ec = isi.section_name_.field_2._M_allocated_capacity;" (assignment_expression "local_ec = isi.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "isi.section_name_.field_2._M_allocated_capacity" (field_expression "isi.section_name_.field_2" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;" (assignment_expression "isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_" (field_expression "isi.section_name_.field_2._M_allocated_capacity" (field_expression "isi.section_name_.field_2" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "sis.u1_.data_size._0_4_" (field_expression "sis.u1_.data_size" (field_expression "sis.u1_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;" (assignment_expression "isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_" (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)sis.shndx_" ( (type_descriptor "pointer" type_identifier) ) (field_expression "sis.shndx_" identifier . field_identifier))) ;) (if_statement "if (_Var19._M_p != (pointer)0x0) {\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }" if (parenthesized_expression "(_Var19._M_p != (pointer)0x0)" ( (binary_expression "_Var19._M_p != (pointer)0x0" (field_expression "_Var19._M_p" identifier . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n              sis.shndx_ = (uint)_Var19._M_p;\n              sis.u1_.data_size._0_4_ = uVar20;\n              goto LAB_001606d8;\n            }" { (expression_statement "sis.shndx_ = (uint)_Var19._M_p;" (assignment_expression "sis.shndx_ = (uint)_Var19._M_p" (field_expression "sis.shndx_" identifier . field_identifier) = (cast_expression "(uint)_Var19._M_p" ( (type_descriptor "uint" type_identifier) ) (field_expression "_Var19._M_p" identifier . field_identifier))) ;) (expression_statement "sis.u1_.data_size._0_4_ = uVar20;" (assignment_expression "sis.u1_.data_size._0_4_ = uVar20" (field_expression "sis.u1_.data_size._0_4_" (field_expression "sis.u1_.data_size" (field_expression "sis.u1_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (goto_statement "goto LAB_001606d8;" goto statement_identifier ;) })) }))) (expression_statement "isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_;" (assignment_expression "isi.section_name_.field_2._M_allocated_capacity = sis.u1_.data_size._0_4_" (field_expression "isi.section_name_.field_2._M_allocated_capacity" (field_expression "isi.section_name_.field_2" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "sis.u1_.data_size._0_4_" (field_expression "sis.u1_.data_size" (field_expression "sis.u1_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "isi.section_name_._M_string_length = sis.p2align_;" (assignment_expression "isi.section_name_._M_string_length = sis.p2align_" (field_expression "isi.section_name_._M_string_length" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) = (field_expression "sis.p2align_" identifier . field_identifier)) ;) (expression_statement "isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_;" (assignment_expression "isi.section_name_._M_dataplus._M_p = (pointer)sis.shndx_" (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)sis.shndx_" ( (type_descriptor "pointer" type_identifier) ) (field_expression "sis.shndx_" identifier . field_identifier))) ;) (expression_statement "sis.shndx_ = (uint)paVar28;" (assignment_expression "sis.shndx_ = (uint)paVar28" (field_expression "sis.shndx_" identifier . field_identifier) = (cast_expression "(uint)paVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "paVar28 = &sis.u1_;" (assignment_expression "paVar28 = &sis.u1_" identifier = (pointer_expression "&sis.u1_" & (field_expression "sis.u1_" identifier . field_identifier))) ;) }))) (labeled_statement "LAB_001606d8:\n        sis.p2align_ = 0;" statement_identifier : (expression_statement "sis.p2align_ = 0;" (assignment_expression "sis.p2align_ = 0" (field_expression "sis.p2align_" identifier . field_identifier) = number_literal) ;)) (expression_statement "*(undefined1 *)sis.shndx_ = 0;" (assignment_expression "*(undefined1 *)sis.shndx_ = 0" (pointer_expression "*(undefined1 *)sis.shndx_" * (cast_expression "(undefined1 *)sis.shndx_" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sis.shndx_" identifier . field_identifier))) = number_literal) ;) (if_statement "if ((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28) {\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }" if (parenthesized_expression "((anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28)" ( (binary_expression "(anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_ != paVar28" (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)sis.shndx_" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sis.shndx_" identifier . field_identifier)) != identifier) )) (compound_statement "{\n          *(uint *)((int)puVar34 + -0x14) = sis.shndx_;\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }" { (expression_statement "*(uint *)((int)puVar34 + -0x14) = sis.shndx_;" (assignment_expression "*(uint *)((int)puVar34 + -0x14) = sis.shndx_" (pointer_expression "*(uint *)((int)puVar34 + -0x14)" * (cast_expression "(uint *)((int)puVar34 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "sis.shndx_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x1606f8" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar34 + -0x14));" (call_expression "operator_delete(*(void **)((int)puVar34 + -0x14))" identifier (argument_list "(*(void **)((int)puVar34 + -0x14))" ( (pointer_expression "*(void **)((int)puVar34 + -0x14)" * (cast_expression "(void **)((int)puVar34 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if ((int *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }" if (parenthesized_expression "((int *)local_8c[0] != local_d8)" ( (binary_expression "(int *)local_8c[0] != local_d8" (cast_expression "(int *)local_8c[0]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_8c[0]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n          *(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x160718;\n          operator_delete(*(void **)((int)puVar34 + -0x14));\n        }" { (expression_statement "*(undefined1 **)((int)puVar34 + -0x14) = local_8c[0];" (assignment_expression "*(undefined1 **)((int)puVar34 + -0x14) = local_8c[0]" (pointer_expression "*(undefined1 **)((int)puVar34 + -0x14)" * (cast_expression "(undefined1 **)((int)puVar34 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_8c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x160718;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x160718" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar34 + -0x14));" (call_expression "operator_delete(*(void **)((int)puVar34 + -0x14))" identifier (argument_list "(*(void **)((int)puVar34 + -0x14))" ( (pointer_expression "*(void **)((int)puVar34 + -0x14)" * (cast_expression "(void **)((int)puVar34 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) }) (else_clause "else {\n        *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;\n        std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n      }" else (compound_statement "{\n        *(Input_section **)((int)puVar34 + -0x10) = local_bc;\n        *(string **)((int)puVar34 + -0x14) = &isi.section_name_;\n                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;\n        std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));\n      }" { (expression_statement "*(Input_section **)((int)puVar34 + -0x10) = local_bc;" (assignment_expression "*(Input_section **)((int)puVar34 + -0x10) = local_bc" (pointer_expression "*(Input_section **)((int)puVar34 + -0x10)" * (cast_expression "(Input_section **)((int)puVar34 + -0x10)" ( (type_descriptor "Input_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(string **)((int)puVar34 + -0x14) = &isi.section_name_;" (assignment_expression "*(string **)((int)puVar34 + -0x14) = &isi.section_name_" (pointer_expression "*(string **)((int)puVar34 + -0x14)" * (cast_expression "(string **)((int)puVar34 + -0x14)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&isi.section_name_" & (field_expression "isi.section_name_" identifier . field_identifier))) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x1610f8" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10));" (call_expression "_M_assign\n                  (*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10))" identifier (argument_list "(*(string **)((int)puVar34 + -0x14),*(string **)((int)puVar34 + -0x10))" ( (pointer_expression "*(string **)((int)puVar34 + -0x14)" * (cast_expression "(string **)((int)puVar34 + -0x14)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(string **)((int)puVar34 + -0x10)" * (cast_expression "(string **)((int)puVar34 + -0x10)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;))) }))) (expression_statement "puVar35 = (uint *)((int)puVar34 + -4);" (assignment_expression "puVar35 = (uint *)((int)puVar34 + -4)" identifier = (cast_expression "(uint *)((int)puVar34 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -4)" ( (binary_expression "(int)puVar34 + -4" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8)) {\n        *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }" if (parenthesized_expression "((Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8))" ( (binary_expression "(Output_section_data *)local_a4._0_4_ != (Output_section_data *)(local_a4 + 8)" (cast_expression "(Output_section_data *)local_a4._0_4_" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_a4._0_4_" identifier . field_identifier)) != (cast_expression "(Output_section_data *)(local_a4 + 8)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4 + 8)" ( (binary_expression "local_a4 + 8" identifier + number_literal) )))) )) (compound_statement "{\n        *(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }" { (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = local_a4._0_4_" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "local_a4._0_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x16073a;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x16073a" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar34 + -0x14));" (call_expression "operator_delete(*(void **)((int)puVar34 + -0x14))" identifier (argument_list "(*(void **)((int)puVar34 + -0x14))" ( (pointer_expression "*(void **)((int)puVar34 + -0x14)" * (cast_expression "(void **)((int)puVar34 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "pRVar17 = (Relobj *)local_b4;" (assignment_expression "pRVar17 = (Relobj *)local_b4" identifier = (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (p_Var37[1]._M_next == (_List_node_base *)0xfffffffc) {\n        p_Var38 = p_Var37[3]._M_next;\n        isi.size_._0_4_ = p_Var38[1]._M_prev;\n        isi.size_._4_4_ = p_Var38[2]._M_next;\n        p_Var13 = p_Var38->_M_next[1]._M_prev;\n        if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }\n        else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }\n      }\n      else {\n        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        p_Var6 = pp_Var5[0xf];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;\n        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();\n        pp_Var5 = (pRVar17->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;\n        p_Var6 = pp_Var5[0x17];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;\n        isi.size_._4_4_ = extraout_EDX;\n        iVar23 = (*p_Var6)();\n        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);\n      }" if (parenthesized_expression "(p_Var37[1]._M_next == (_List_node_base *)0xfffffffc)" ( (binary_expression "p_Var37[1]._M_next == (_List_node_base *)0xfffffffc" (field_expression "p_Var37[1]._M_next" (subscript_expression "p_Var37[1]" identifier [ number_literal ]) . field_identifier) == (cast_expression "(_List_node_base *)0xfffffffc" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        p_Var38 = p_Var37[3]._M_next;\n        isi.size_._0_4_ = p_Var38[1]._M_prev;\n        isi.size_._4_4_ = p_Var38[2]._M_next;\n        p_Var13 = p_Var38->_M_next[1]._M_prev;\n        if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }\n        else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }\n      }" { (expression_statement "p_Var38 = p_Var37[3]._M_next;" (assignment_expression "p_Var38 = p_Var37[3]._M_next" identifier = (field_expression "p_Var37[3]._M_next" (subscript_expression "p_Var37[3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "isi.size_._0_4_ = p_Var38[1]._M_prev;" (assignment_expression "isi.size_._0_4_ = p_Var38[1]._M_prev" (field_expression "isi.size_._0_4_" (field_expression "isi.size_" identifier . field_identifier) . field_identifier) = (field_expression "p_Var38[1]._M_prev" (subscript_expression "p_Var38[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "isi.size_._4_4_ = p_Var38[2]._M_next;" (assignment_expression "isi.size_._4_4_ = p_Var38[2]._M_next" (field_expression "isi.size_._4_4_" (field_expression "isi.size_" identifier . field_identifier) . field_identifier) = (field_expression "p_Var38[2]._M_next" (subscript_expression "p_Var38[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var13 = p_Var38->_M_next[1]._M_prev;" (assignment_expression "p_Var13 = p_Var38->_M_next[1]._M_prev" identifier = (field_expression "p_Var38->_M_next[1]._M_prev" (subscript_expression "p_Var38->_M_next[1]" (field_expression "p_Var38->_M_next" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (if_statement "if (p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)) {\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }\n        else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }" if (parenthesized_expression "(p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88))" ( (binary_expression "p_Var13 == (_List_node_base *)(local_b8 + -0xc6e88)" identifier == (cast_expression "(_List_node_base *)(local_b8 + -0xc6e88)" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b8 + -0xc6e88)" ( (binary_expression "local_b8 + -0xc6e88" identifier + number_literal) )))) )) (compound_statement "{\n          isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;\n        }" { (expression_statement "isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev;" (assignment_expression "isi.addralign_ = *(uint64_t *)&p_Var38[4]._M_prev" (field_expression "isi.addralign_" identifier . field_identifier) = (pointer_expression "*(uint64_t *)&p_Var38[4]._M_prev" * (cast_expression "(uint64_t *)&p_Var38[4]._M_prev" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p_Var38[4]._M_prev" & (field_expression "p_Var38[4]._M_prev" (subscript_expression "p_Var38[4]" identifier [ number_literal ]) . field_identifier))))) ;) }) (else_clause "else {\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }" else (compound_statement "{\n          *(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;\n                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;\n          isi.addralign_ = (*(code *)p_Var13)();\n        }" { (expression_statement "*(_List_node_base **)((int)puVar34 + -0x14) = p_Var38;" (assignment_expression "*(_List_node_base **)((int)puVar34 + -0x14) = p_Var38" (pointer_expression "*(_List_node_base **)((int)puVar34 + -0x14)" * (cast_expression "(_List_node_base **)((int)puVar34 + -0x14)" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x16140c;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x16140c" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "isi.addralign_ = (*(code *)p_Var13)();" (assignment_expression "isi.addralign_ = (*(code *)p_Var13)()" (field_expression "isi.addralign_" identifier . field_identifier) = (call_expression "(*(code *)p_Var13)()" (parenthesized_expression "(*(code *)p_Var13)" ( (pointer_expression "*(code *)p_Var13" * (cast_expression "(code *)p_Var13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) }))) }) (else_clause "else {\n        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        p_Var6 = pp_Var5[0xf];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;\n        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();\n        pp_Var5 = (pRVar17->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;\n        p_Var6 = pp_Var5[0x17];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;\n        isi.size_._4_4_ = extraout_EDX;\n        iVar23 = (*p_Var6)();\n        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);\n      }" else (compound_statement "{\n        pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;\n                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */\n        p_Var6 = pp_Var5[0xf];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160757;\n        isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();\n        pp_Var5 = (pRVar17->super_Object)._vptr_Object;\n        *(uint *)((int)puVar34 + -0x10) = uVar33;\n        *(Relobj **)((int)puVar34 + -0x14) = pRVar17;\n        p_Var6 = pp_Var5[0x17];\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160767;\n        isi.size_._4_4_ = extraout_EDX;\n        iVar23 = (*p_Var6)();\n        isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);\n      }" { (expression_statement "pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object;" (assignment_expression "pp_Var5 = (((Relobj *)local_b4)->super_Object)._vptr_Object" identifier = (field_expression "(((Relobj *)local_b4)->super_Object)._vptr_Object" (parenthesized_expression "(((Relobj *)local_b4)->super_Object)" ( (field_expression "((Relobj *)local_b4)->super_Object" (parenthesized_expression "((Relobj *)local_b4)" ( (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(uint *)((int)puVar34 + -0x10) = uVar33;" (assignment_expression "*(uint *)((int)puVar34 + -0x10) = uVar33" (pointer_expression "*(uint *)((int)puVar34 + -0x10)" * (cast_expression "(uint *)((int)puVar34 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4;" (assignment_expression "*(Relobj **)((int)puVar34 + -0x14) = (Relobj *)local_b4" (pointer_expression "*(Relobj **)((int)puVar34 + -0x14)" * (cast_expression "(Relobj **)((int)puVar34 + -0x14)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) comment (expression_statement "p_Var6 = pp_Var5[0xf];" (assignment_expression "p_Var6 = pp_Var5[0xf]" identifier = (subscript_expression "pp_Var5[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x160757;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x160757" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "isi.size_._0_4_ = (_List_node_base *)(*p_Var6)();" (assignment_expression "isi.size_._0_4_ = (_List_node_base *)(*p_Var6)()" (field_expression "isi.size_._0_4_" (field_expression "isi.size_" identifier . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)(*p_Var6)()" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var6)()" (parenthesized_expression "(*p_Var6)" ( (pointer_expression "*p_Var6" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "pp_Var5 = (pRVar17->super_Object)._vptr_Object;" (assignment_expression "pp_Var5 = (pRVar17->super_Object)._vptr_Object" identifier = (field_expression "(pRVar17->super_Object)._vptr_Object" (parenthesized_expression "(pRVar17->super_Object)" ( (field_expression "pRVar17->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(uint *)((int)puVar34 + -0x10) = uVar33;" (assignment_expression "*(uint *)((int)puVar34 + -0x10) = uVar33" (pointer_expression "*(uint *)((int)puVar34 + -0x10)" * (cast_expression "(uint *)((int)puVar34 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Relobj **)((int)puVar34 + -0x14) = pRVar17;" (assignment_expression "*(Relobj **)((int)puVar34 + -0x14) = pRVar17" (pointer_expression "*(Relobj **)((int)puVar34 + -0x14)" * (cast_expression "(Relobj **)((int)puVar34 + -0x14)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "p_Var6 = pp_Var5[0x17];" (assignment_expression "p_Var6 = pp_Var5[0x17]" identifier = (subscript_expression "pp_Var5[0x17]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x160767;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x160767" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "isi.size_._4_4_ = extraout_EDX;" (assignment_expression "isi.size_._4_4_ = extraout_EDX" (field_expression "isi.size_._4_4_" (field_expression "isi.size_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "iVar23 = (*p_Var6)();" (assignment_expression "iVar23 = (*p_Var6)()" identifier = (call_expression "(*p_Var6)()" (parenthesized_expression "(*p_Var6)" ( (pointer_expression "*p_Var6" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23);" (assignment_expression "isi.addralign_ = CONCAT44(extraout_EDX_00,iVar23)" (field_expression "isi.addralign_" identifier . field_identifier) = (call_expression "CONCAT44(extraout_EDX_00,iVar23)" identifier (argument_list "(extraout_EDX_00,iVar23)" ( identifier , identifier )))) ;) }))) (expression_statement "pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_;" (assignment_expression "pIVar4 = (((Relobj *)local_b4)->super_Object).input_file_" identifier = (field_expression "(((Relobj *)local_b4)->super_Object).input_file_" (parenthesized_expression "(((Relobj *)local_b4)->super_Object)" ( (field_expression "((Relobj *)local_b4)->super_Object" (parenthesized_expression "((Relobj *)local_b4)" ( (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pIVar4 != (Input_file *)0x0) {\n        *(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160791;\n        File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));\n      }" if (parenthesized_expression "(pIVar4 != (Input_file *)0x0)" ( (binary_expression "pIVar4 != (Input_file *)0x0" identifier != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;\n        *(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x160791;\n        File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));\n      }" { (expression_statement "*(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x10) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_;" (assignment_expression "*(File_read **)((int)puVar34 + -0x14) = &pIVar4->file_" (pointer_expression "*(File_read **)((int)puVar34 + -0x14)" * (cast_expression "(File_read **)((int)puVar34 + -0x14)" ( (type_descriptor "File_read **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&pIVar4->file_" & (field_expression "pIVar4->file_" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x160791;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x160791" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "File_read::unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10));" (call_expression "unlock(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10))" identifier (argument_list "(*(File_read **)((int)puVar34 + -0x14),*(Task **)((int)puVar34 + -0x10))" ( (pointer_expression "*(File_read **)((int)puVar34 + -0x14)" * (cast_expression "(File_read **)((int)puVar34 + -0x14)" ( (type_descriptor "File_read **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Task **)((int)puVar34 + -0x10)" * (cast_expression "(Task **)((int)puVar34 + -0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "*(pointer *)((int)puVar34 + -0x10) =\n           (((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar34 + -0x10) =\n           (((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar34 + -0x10)" * (cast_expression "(pointer *)((int)puVar34 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "(((Relobj *)local_b4)->super_Object).name_._M_dataplus._M_p" (field_expression "(((Relobj *)local_b4)->super_Object).name_._M_dataplus" (field_expression "(((Relobj *)local_b4)->super_Object).name_" (parenthesized_expression "(((Relobj *)local_b4)->super_Object)" ( (field_expression "((Relobj *)local_b4)->super_Object" (parenthesized_expression "((Relobj *)local_b4)" ( (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(Output_section_element_input **)((int)puVar34 + -0x14) = this;" (assignment_expression "*(Output_section_element_input **)((int)puVar34 + -0x14) = this" (pointer_expression "*(Output_section_element_input **)((int)puVar34 + -0x14)" * (cast_expression "(Output_section_element_input **)((int)puVar34 + -0x14)" ( (type_descriptor "Output_section_element_input **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x1607a8;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x1607a8" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "bVar21 = match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10));" (assignment_expression "bVar21 = match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10))" identifier = (call_expression "match_file_name(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10))" identifier (argument_list "(*(Output_section_element_input **)((int)puVar34 + -0x14),\n                               *(char **)((int)puVar34 + -0x10))" ( (pointer_expression "*(Output_section_element_input **)((int)puVar34 + -0x14)" * (cast_expression "(Output_section_element_input **)((int)puVar34 + -0x14)" ( (type_descriptor "Output_section_element_input **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (bVar21) {\n        pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;\n        if ((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24) {\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar32 = (uint *)local_114[1];\n        piVar22 = local_114;\n        if (puVar32 == (uint *)local_114[2]) {\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }\n        else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }\nLAB_001612ad:\n        p_Var38 = p_Var37->_M_next;\n        psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar3 = *psVar3 - 1;\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;\n        std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }\n      else {\nLAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n        pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;\n        if ((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24) {\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar32 = (uint *)local_114[1];\n        piVar22 = local_114;\n        if (puVar32 == (uint *)local_114[2]) {\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }\n        else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }\nLAB_001612ad:\n        p_Var38 = p_Var37->_M_next;\n        psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar3 = *psVar3 - 1;\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;\n        std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));\n        *(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }" { (ERROR "pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold::" (assignment_expression "pIVar24 = (this->input_section_patterns_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->input_section_patterns_).\n                  super__Vector_base<gold" (field_expression "(this->input_section_patterns_).\n                  super__Vector_base" (parenthesized_expression "(this->input_section_patterns_)" ( (field_expression "this->input_section_patterns_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;" statement_identifier (ERROR "::Input_section_pattern,_std::allocator<gold:" : : (comma_expression "Input_section_pattern,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section_element_input::Input_section_pattern>_>\n                  ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section_pattern>_>\n                  ._M_impl._M_start;" (field_expression "Input_section_pattern>_>\n                  ._M_impl._M_start" (field_expression "Input_section_pattern>_>\n                  ._M_impl" (binary_expression "Input_section_pattern>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if ((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24) {\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }" if (parenthesized_expression "((this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24)" ( (ERROR "(this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::" (comma_expression "(this->input_section_patterns_).\n            super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std" (binary_expression "(this->input_section_patterns_).\n            super__Vector_base<gold" (field_expression "(this->input_section_patterns_).\n            super__Vector_base" (parenthesized_expression "(this->input_section_patterns_)" ( (field_expression "this->input_section_patterns_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section_element_input::Input_section_pattern" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section_pattern>_>\n            ._M_impl._M_finish != pIVar24" (field_expression "Input_section_pattern>_>\n            ._M_impl._M_finish" (field_expression "Input_section_pattern>_>\n            ._M_impl" (binary_expression "Input_section_pattern>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) (compound_statement "{\n          if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }" { (if_statement "if (local_cc != 0) {\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }" if (parenthesized_expression "(local_cc != 0)" ( (binary_expression "local_cc != 0" identifier != number_literal) )) (compound_statement "{\n            uVar33 = 0;\n            while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }\n            if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }\n          }" { (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;\n              if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }\n              if (iVar23 == 0) break;\n              uVar33 = uVar33 + 1;\n              if (uVar33 == local_cc) goto LAB_001610b0;\n              pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;\n            }" { (expression_statement "pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p;" (assignment_expression "pcVar7 = pIVar24[uVar33].pattern._M_dataplus._M_p" identifier = (field_expression "pIVar24[uVar33].pattern._M_dataplus._M_p" (field_expression "pIVar24[uVar33].pattern._M_dataplus" (field_expression "pIVar24[uVar33].pattern" (subscript_expression "pIVar24[uVar33]" identifier [ identifier ]) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pIVar24[uVar33].pattern_is_wildcard == false) {\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }" if (parenthesized_expression "(pIVar24[uVar33].pattern_is_wildcard == false)" ( (binary_expression "pIVar24[uVar33].pattern_is_wildcard == false" (field_expression "pIVar24[uVar33].pattern_is_wildcard" (subscript_expression "pIVar24[uVar33]" identifier [ identifier ]) . field_identifier) == false) )) (compound_statement "{\n                *(pointer *)((int)puVar34 + -0x10) = pcVar7;\n                *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;\n                iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));\n              }" { (expression_statement "*(pointer *)((int)puVar34 + -0x10) = pcVar7;" (assignment_expression "*(pointer *)((int)puVar34 + -0x10) = pcVar7" (pointer_expression "*(pointer *)((int)puVar34 + -0x10)" * (cast_expression "(pointer *)((int)puVar34 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar34 + -0x14)" * (cast_expression "(pointer *)((int)puVar34 + -0x14)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x1607f0" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10));" (assignment_expression "iVar23 = strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10))" identifier = (call_expression "strcmp(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10))" identifier (argument_list "(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10))" ( (pointer_expression "*(char **)((int)puVar34 + -0x14)" * (cast_expression "(char **)((int)puVar34 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) }) (else_clause "else {\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }" else (compound_statement "{\n                *(undefined4 *)((int)puVar34 + -0xc) = 0;\n                *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n                *(pointer *)((int)puVar34 + -0x14) = pcVar7;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x160835;\n                iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));\n              }" { (expression_statement "*(undefined4 *)((int)puVar34 + -0xc) = 0;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0xc) = 0" (pointer_expression "*(undefined4 *)((int)puVar34 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar34 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar34 + -0x10)" * (cast_expression "(pointer *)((int)puVar34 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(pointer *)((int)puVar34 + -0x14) = pcVar7;" (assignment_expression "*(pointer *)((int)puVar34 + -0x14) = pcVar7" (pointer_expression "*(pointer *)((int)puVar34 + -0x14)" * (cast_expression "(pointer *)((int)puVar34 + -0x14)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x160835;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x160835" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc));" (assignment_expression "iVar23 = fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc))" identifier = (call_expression "fnmatch(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc))" identifier (argument_list "(*(char **)((int)puVar34 + -0x14),*(char **)((int)puVar34 + -0x10),\n                                 *(int *)((int)puVar34 + -0xc))" ( (pointer_expression "*(char **)((int)puVar34 + -0x14)" * (cast_expression "(char **)((int)puVar34 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar34 + -0xc)" * (cast_expression "(int *)((int)puVar34 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) }))) (if_statement "if (iVar23 == 0) break;" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar33 = uVar33 + 1;" (assignment_expression "uVar33 = uVar33 + 1" identifier = (binary_expression "uVar33 + 1" identifier + number_literal)) ;) (if_statement "if (uVar33 == local_cc) goto LAB_001610b0;" if (parenthesized_expression "(uVar33 == local_cc)" ( (binary_expression "uVar33 == local_cc" identifier == identifier) )) (goto_statement "goto LAB_001610b0;" goto statement_identifier ;)) (ERROR "pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold::" (assignment_expression "pIVar24 = (this->input_section_patterns_).\n                        super__Vector_base<gold" identifier = (binary_expression "(this->input_section_patterns_).\n                        super__Vector_base<gold" (field_expression "(this->input_section_patterns_).\n                        super__Vector_base" (parenthesized_expression "(this->input_section_patterns_)" ( (field_expression "this->input_section_patterns_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;" statement_identifier (ERROR "::Input_section_pattern,_std::allocator<gold:" : : (comma_expression "Input_section_pattern,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section_element_input::Input_section_pattern>_>\n                        ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section_pattern>_>\n                        ._M_impl._M_start;" (field_expression "Input_section_pattern>_>\n                        ._M_impl._M_start" (field_expression "Input_section_pattern>_>\n                        ._M_impl" (binary_expression "Input_section_pattern>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) })) (if_statement "if (uVar33 < local_cc) {\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }" if (parenthesized_expression "(uVar33 < local_cc)" ( (binary_expression "uVar33 < local_cc" identifier < identifier) )) (compound_statement "{\n              piVar22 = local_114;\n              if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }\n              puVar32 = (uint *)piVar22[1];\n              if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;\n              *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n              *(uint **)((int)puVar34 + -0x10) = puVar32;\n              *(int **)((int)puVar34 + -0x14) = piVar22;\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x160881;\n              std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));\n              goto LAB_001612ad;\n            }" { (expression_statement "piVar22 = local_114;" (assignment_expression "piVar22 = local_114" identifier = identifier) ;) (if_statement "if (uVar33 < local_f4) {\n                piVar22 = local_114 + uVar33 * 3;\n              }" if (parenthesized_expression "(uVar33 < local_f4)" ( (binary_expression "uVar33 < local_f4" identifier < identifier) )) (compound_statement "{\n                piVar22 = local_114 + uVar33 * 3;\n              }" { (expression_statement "piVar22 = local_114 + uVar33 * 3;" (assignment_expression "piVar22 = local_114 + uVar33 * 3" identifier = (binary_expression "local_114 + uVar33 * 3" identifier + (binary_expression "uVar33 * 3" identifier * number_literal))) ;) })) (expression_statement "puVar32 = (uint *)piVar22[1];" (assignment_expression "puVar32 = (uint *)piVar22[1]" identifier = (cast_expression "(uint *)piVar22[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[1]" identifier [ number_literal ]))) ;) (if_statement "if (puVar32 != (uint *)piVar22[2]) goto LAB_00161250;" if (parenthesized_expression "(puVar32 != (uint *)piVar22[2])" ( (binary_expression "puVar32 != (uint *)piVar22[2]" identifier != (cast_expression "(uint *)piVar22[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[2]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00161250;" goto statement_identifier ;)) (expression_statement "*(Input_section_info **)((int)puVar34 + -0xc) = &isi;" (assignment_expression "*(Input_section_info **)((int)puVar34 + -0xc) = &isi" (pointer_expression "*(Input_section_info **)((int)puVar34 + -0xc)" * (cast_expression "(Input_section_info **)((int)puVar34 + -0xc)" ( (type_descriptor "Input_section_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&isi" & identifier)) ;) (expression_statement "*(uint **)((int)puVar34 + -0x10) = puVar32;" (assignment_expression "*(uint **)((int)puVar34 + -0x10) = puVar32" (pointer_expression "*(uint **)((int)puVar34 + -0x10)" * (cast_expression "(uint **)((int)puVar34 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)puVar34 + -0x14) = piVar22;" (assignment_expression "*(int **)((int)puVar34 + -0x14) = piVar22" (pointer_expression "*(int **)((int)puVar34 + -0x14)" * (cast_expression "(int **)((int)puVar34 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x160881;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x160881" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold::Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));" statement_identifier (ERROR "::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n              _M_realloc_insert<const_gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Input_section_info,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Input_section_info>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (expression_statement "Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc));" (binary_expression "Input_section_info&>\n                        (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc))" identifier (ERROR "&" &) > (parenthesized_expression "(*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc))" ( (comma_expression "*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc)" (pointer_expression "*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14)" * (call_expression "(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)((int)puVar34 + -0x14)" (parenthesized_expression "(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                           **)" ( (ERROR "vector<gold::Input_section_info,_std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Input_section_info,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_section_info>_>\n                           **" (binary_expression "Input_section_info>_" identifier > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Input_section_info **)((int)puVar34 + -0x10),\n                         *(Input_section_info **)((int)puVar34 + -0xc)" (pointer_expression "*(Input_section_info **)((int)puVar34 + -0x10)" * (cast_expression "(Input_section_info **)((int)puVar34 + -0x10)" ( (type_descriptor "Input_section_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Input_section_info **)((int)puVar34 + -0xc)" * (cast_expression "(Input_section_info **)((int)puVar34 + -0xc)" ( (type_descriptor "Input_section_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;)) (goto_statement "goto LAB_001612ad;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_001610b0;" goto statement_identifier ;) })) (expression_statement "puVar32 = (uint *)local_114[1];" (assignment_expression "puVar32 = (uint *)local_114[1]" identifier = (cast_expression "(uint *)local_114[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_114[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar22 = local_114;" (assignment_expression "piVar22 = local_114" identifier = identifier) ;) (if_statement "if (puVar32 == (uint *)local_114[2]) {\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }\n        else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }" if (parenthesized_expression "(puVar32 == (uint *)local_114[2])" ( (binary_expression "puVar32 == (uint *)local_114[2]" identifier == (cast_expression "(uint *)local_114[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_114[2]" identifier [ number_literal ]))) )) (compound_statement "{\n          *(Input_section_info **)((int)puVar34 + -0xc) = &isi;\n          *(uint **)((int)puVar34 + -0x10) = puVar32;\n          *(int **)((int)puVar34 + -0x14) = local_114;\n                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x161485;\n          std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));\n        }" { (expression_statement "*(Input_section_info **)((int)puVar34 + -0xc) = &isi;" (assignment_expression "*(Input_section_info **)((int)puVar34 + -0xc) = &isi" (pointer_expression "*(Input_section_info **)((int)puVar34 + -0xc)" * (cast_expression "(Input_section_info **)((int)puVar34 + -0xc)" ( (type_descriptor "Input_section_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&isi" & identifier)) ;) (expression_statement "*(uint **)((int)puVar34 + -0x10) = puVar32;" (assignment_expression "*(uint **)((int)puVar34 + -0x10) = puVar32" (pointer_expression "*(uint **)((int)puVar34 + -0x10)" * (cast_expression "(uint **)((int)puVar34 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)puVar34 + -0x14) = local_114;" (assignment_expression "*(int **)((int)puVar34 + -0x14) = local_114" (pointer_expression "*(int **)((int)puVar34 + -0x14)" * (cast_expression "(int **)((int)puVar34 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x161485;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x161485" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold::Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));" statement_identifier (ERROR "::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>::\n          _M_realloc_insert<const_gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Input_section_info,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Input_section_info>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (expression_statement "Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc));" (binary_expression "Input_section_info&>\n                    (*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc))" identifier (ERROR "&" &) > (parenthesized_expression "(*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc))" ( (comma_expression "*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14),*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc)" (pointer_expression "*(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14)" * (call_expression "(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)((int)puVar34 + -0x14)" (parenthesized_expression "(vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>\n                       **)" ( (ERROR "vector<gold::Input_section_info,_std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Input_section_info,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_section_info>_>\n                       **" (binary_expression "Input_section_info>_" identifier > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Input_section_info **)((int)puVar34 + -0x10),\n                     *(Input_section_info **)((int)puVar34 + -0xc)" (pointer_expression "*(Input_section_info **)((int)puVar34 + -0x10)" * (cast_expression "(Input_section_info **)((int)puVar34 + -0x10)" ( (type_descriptor "Input_section_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Input_section_info **)((int)puVar34 + -0xc)" * (cast_expression "(Input_section_info **)((int)puVar34 + -0xc)" ( (type_descriptor "Input_section_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;)) }) (else_clause "else {\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }" else (compound_statement "{\nLAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;\n          puVar32[1] = isi.input_section_.p2align_;\n          puVar32[2] = isi.input_section_.u1_.data_size._0_4_;\n          puVar32[3] = isi.input_section_.u1_.data_size._4_4_;\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;\n          puVar32[5] = isi.input_section_.section_order_index_;\n          puVar32[6] = (uint)(puVar32 + 8);\n          *(undefined4 *)((int)puVar34 + -8) = 0;\n          *(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;\n          *(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;\n          *(uint **)((int)puVar34 + -0x14) = puVar32 + 6;\n                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */\n          *(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();\n          puVar32[0xc] = (uint)(_List_node_base *)isi.size_;\n          puVar32[0xd] = (uint)isi.size_._4_4_;\n          *(uint64_t *)(puVar32 + 0xe) = isi.addralign_;\n          piVar22[1] = piVar22[1] + 0x40;\n        }" { (labeled_statement "LAB_00161250:\n          *puVar32 = isi.input_section_.shndx_;" statement_identifier : (expression_statement "*puVar32 = isi.input_section_.shndx_;" (assignment_expression "*puVar32 = isi.input_section_.shndx_" (pointer_expression "*puVar32" * identifier) = (field_expression "isi.input_section_.shndx_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier)) ;)) (expression_statement "puVar32[1] = isi.input_section_.p2align_;" (assignment_expression "puVar32[1] = isi.input_section_.p2align_" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (field_expression "isi.input_section_.p2align_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar32[2] = isi.input_section_.u1_.data_size._0_4_;" (assignment_expression "puVar32[2] = isi.input_section_.u1_.data_size._0_4_" (subscript_expression "puVar32[2]" identifier [ number_literal ]) = (field_expression "isi.input_section_.u1_.data_size._0_4_" (field_expression "isi.input_section_.u1_.data_size" (field_expression "isi.input_section_.u1_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "puVar32[3] = isi.input_section_.u1_.data_size._4_4_;" (assignment_expression "puVar32[3] = isi.input_section_.u1_.data_size._4_4_" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = (field_expression "isi.input_section_.u1_.data_size._4_4_" (field_expression "isi.input_section_.u1_.data_size" (field_expression "isi.input_section_.u1_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_;" (assignment_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = isi.input_section_.u2_" (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) )))) = (field_expression "isi.input_section_.u2_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar32[5] = isi.input_section_.section_order_index_;" (assignment_expression "puVar32[5] = isi.input_section_.section_order_index_" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = (field_expression "isi.input_section_.section_order_index_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar32[6] = (uint)(puVar32 + 8);" (assignment_expression "puVar32[6] = (uint)(puVar32 + 8)" (subscript_expression "puVar32[6]" identifier [ number_literal ]) = (call_expression "(uint)(puVar32 + 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)puVar34 + -8) = 0" (pointer_expression "*(undefined4 *)((int)puVar34 + -8)" * (cast_expression "(undefined4 *)((int)puVar34 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length;" (assignment_expression "*(pointer *)((int)puVar34 + -0xc) =\n               isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length" (pointer_expression "*(pointer *)((int)puVar34 + -0xc)" * (cast_expression "(pointer *)((int)puVar34 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "isi.section_name_._M_dataplus._M_p + isi.section_name_._M_string_length" (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) + (field_expression "isi.section_name_._M_string_length" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "*(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar34 + -0x10) = isi.section_name_._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar34 + -0x10)" * (cast_expression "(pointer *)((int)puVar34 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(uint **)((int)puVar34 + -0x14) = puVar32 + 6;" (assignment_expression "*(uint **)((int)puVar34 + -0x14) = puVar32 + 6" (pointer_expression "*(uint **)((int)puVar34 + -0x14)" * (cast_expression "(uint **)((int)puVar34 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar32 + 6" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x16128e;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x16128e" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>();" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char*>();" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*>()" * > ( )) ;)) (expression_statement "puVar32[0xc] = (uint)(_List_node_base *)isi.size_;" (assignment_expression "puVar32[0xc] = (uint)(_List_node_base *)isi.size_" (subscript_expression "puVar32[0xc]" identifier [ number_literal ]) = (cast_expression "(uint)(_List_node_base *)isi.size_" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(_List_node_base *)isi.size_" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "isi.size_" identifier . field_identifier)))) ;) (expression_statement "puVar32[0xd] = (uint)isi.size_._4_4_;" (assignment_expression "puVar32[0xd] = (uint)isi.size_._4_4_" (subscript_expression "puVar32[0xd]" identifier [ number_literal ]) = (cast_expression "(uint)isi.size_._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "isi.size_._4_4_" (field_expression "isi.size_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "*(uint64_t *)(puVar32 + 0xe) = isi.addralign_;" (assignment_expression "*(uint64_t *)(puVar32 + 0xe) = isi.addralign_" (pointer_expression "*(uint64_t *)(puVar32 + 0xe)" * (cast_expression "(uint64_t *)(puVar32 + 0xe)" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0xe)" ( (binary_expression "puVar32 + 0xe" identifier + number_literal) )))) = (field_expression "isi.addralign_" identifier . field_identifier)) ;) (expression_statement "piVar22[1] = piVar22[1] + 0x40;" (assignment_expression "piVar22[1] = piVar22[1] + 0x40" (subscript_expression "piVar22[1]" identifier [ number_literal ]) = (binary_expression "piVar22[1] + 0x40" (subscript_expression "piVar22[1]" identifier [ number_literal ]) + number_literal)) ;) }))) (labeled_statement "LAB_001612ad:\n        p_Var38 = p_Var37->_M_next;" statement_identifier : (expression_statement "p_Var38 = p_Var37->_M_next;" (assignment_expression "p_Var38 = p_Var37->_M_next" identifier = (field_expression "p_Var37->_M_next" identifier -> field_identifier)) ;)) (expression_statement "psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;" (assignment_expression "psVar3 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size" identifier = (pointer_expression "&(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size" & (field_expression "(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size" (field_expression "(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node" (field_expression "(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl" (parenthesized_expression "(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )" ( (ERROR "input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std" (binary_expression "input_sections->\n                  super__List_base<gold" (field_expression "input_sections->\n                  super__List_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "*psVar3 = *psVar3 - 1;" (assignment_expression "*psVar3 = *psVar3 - 1" (pointer_expression "*psVar3" * identifier) = (binary_expression "*psVar3 - 1" (pointer_expression "*psVar3" * identifier) - number_literal)) ;) (expression_statement "*(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;" (assignment_expression "*(_List_node_base **)((int)puVar34 + -0x14) = p_Var37" (pointer_expression "*(_List_node_base **)((int)puVar34 + -0x14)" * (cast_expression "(_List_node_base **)((int)puVar34 + -0x14)" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x1612c5" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));" statement_identifier : (ERROR ":" :) (labeled_statement "__detail::_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));" statement_identifier : (ERROR ":" :) (labeled_statement "_List_node_base::_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));" statement_identifier : (ERROR ":" :) (expression_statement "_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14));" (call_expression "_M_unhook(*(_List_node_base **)((int)puVar34 + -0x14))" identifier (argument_list "(*(_List_node_base **)((int)puVar34 + -0x14))" ( (pointer_expression "*(_List_node_base **)((int)puVar34 + -0x14)" * (cast_expression "(_List_node_base **)((int)puVar34 + -0x14)" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)))) (expression_statement "*(_List_node_base **)((int)puVar34 + -0x14) = p_Var37;" (assignment_expression "*(_List_node_base **)((int)puVar34 + -0x14) = p_Var37" (pointer_expression "*(_List_node_base **)((int)puVar34 + -0x14)" * (cast_expression "(_List_node_base **)((int)puVar34 + -0x14)" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x1612d5" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar34 + -0x14));" (call_expression "operator_delete(*(void **)((int)puVar34 + -0x14))" identifier (argument_list "(*(void **)((int)puVar34 + -0x14))" ( (pointer_expression "*(void **)((int)puVar34 + -0x14)" * (cast_expression "(void **)((int)puVar34 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) }) (else_clause "else {\nLAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      }" else (compound_statement "{\nLAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      }" { (labeled_statement "LAB_001610b0:\n        p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;" statement_identifier : (expression_statement "p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;" (assignment_expression "p_Var38 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next" identifier = (field_expression "(((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base._M_next" (field_expression "(((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node.super__List_node_base" (field_expression "(((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)._M_node" (parenthesized_expression "(((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl)" ( (field_expression "((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)->_M_impl" (parenthesized_expression "((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next)" ( (binary_expression "(_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)&p_Var37->_M_next" (parenthesized_expression "(_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                     *)" ( (ERROR "_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "_List_base<gold::Output_section::Input_section,_std" (binary_expression "_List_base<gold" identifier < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>\n                     *" (binary_expression "Input_section>_" identifier > identifier) > (pointer_expression "*" * identifier)) )) & (field_expression "p_Var37->_M_next" identifier -> field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;)) }))) (if_statement "if (isi.section_name_._M_dataplus._M_p != (pointer)local_d4) {\n        *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }" if (parenthesized_expression "(isi.section_name_._M_dataplus._M_p != (pointer)local_d4)" ( (binary_expression "isi.section_name_._M_dataplus._M_p != (pointer)local_d4" (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) != (cast_expression "(pointer)local_d4" ( (type_descriptor "pointer" type_identifier) ) identifier)) )) (compound_statement "{\n        *(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;\n        *(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;\n        operator_delete(*(void **)((int)puVar34 + -0x14));\n      }" { (expression_statement "*(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar34 + -0x14) = isi.section_name_._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar34 + -0x14)" * (cast_expression "(pointer *)((int)puVar34 + -0x14)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "isi.section_name_._M_dataplus._M_p" (field_expression "isi.section_name_._M_dataplus" (field_expression "isi.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x1610cc" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar34 + -0x14));" (call_expression "operator_delete(*(void **)((int)puVar34 + -0x14))" identifier (argument_list "(*(void **)((int)puVar34 + -0x14))" ( (pointer_expression "*(void **)((int)puVar34 + -0x14)" * (cast_expression "(void **)((int)puVar34 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "puVar34 = (uint *)((int)puVar34 + -4);" (assignment_expression "puVar34 = (uint *)((int)puVar34 + -4)" identifier = (cast_expression "(uint *)((int)puVar34 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -4)" ( (binary_expression "(int)puVar34 + -4" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "p_Var37 = p_Var38;" (assignment_expression "p_Var37 = p_Var38" identifier = identifier) ;) }) while (parenthesized_expression "(p_Var38 != (_List_node_base *)input_sections)" ( (binary_expression "p_Var38 != (_List_node_base *)input_sections" identifier != (cast_expression "(_List_node_base *)input_sections" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) })) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_cc = (uint)*dot_value;" (assignment_expression "local_cc = (uint)*dot_value" identifier = (binary_expression "(uint)*dot_value" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "local_c8 = *(uint *)((int)dot_value + 4);" (assignment_expression "local_c8 = *(uint *)((int)dot_value + 4)" identifier = (pointer_expression "*(uint *)((int)dot_value + 4)" * (cast_expression "(uint *)((int)dot_value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_d8 = local_114 + 1;" (assignment_expression "local_d8 = local_114 + 1" identifier = (binary_expression "local_114 + 1" identifier + number_literal)) ;) (expression_statement "local_dc = (anon_union_8_2_227b06d7_for_u1_ *)(local_b8 + -0x2d01);" (assignment_expression "local_dc = (anon_union_8_2_227b06d7_for_u1_ *)(local_b8 + -0x2d01)" identifier = (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)(local_b8 + -0x2d01)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b8 + -0x2d01)" ( (binary_expression "local_b8 + -0x2d01" identifier + number_literal) )))) ;) (expression_statement "uVar39 = local_e4 - 1;" (assignment_expression "uVar39 = local_e4 - 1" identifier = (binary_expression "local_e4 - 1" identifier - number_literal)) ;) (expression_statement "local_b4 = uVar39;" (assignment_expression "local_b4 = uVar39" identifier = identifier) ;) (expression_statement "local_f0 = (uint)((uVar39 & local_e4) >> 0x20) | (uint)(uVar39 & local_e4);" (assignment_expression "local_f0 = (uint)((uVar39 & local_e4) >> 0x20) | (uint)(uVar39 & local_e4)" identifier = (binary_expression "(uint)((uVar39 & local_e4) >> 0x20) | (uint)(uVar39 & local_e4)" (call_expression "(uint)((uVar39 & local_e4) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar39 & local_e4) >> 0x20)" ( (binary_expression "(uVar39 & local_e4) >> 0x20" (parenthesized_expression "(uVar39 & local_e4)" ( (binary_expression "uVar39 & local_e4" identifier & identifier) )) >> number_literal) ))) | (call_expression "(uint)(uVar39 & local_e4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar39 & local_e4)" ( (binary_expression "uVar39 & local_e4" identifier & identifier) ))))) ;) (expression_statement "local_e8 = (int)local_b8 + -0xeb73d;" (assignment_expression "local_e8 = (int)local_b8 + -0xeb73d" identifier = (binary_expression "(int)local_b8 + -0xeb73d" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "auStack_124[2] = (int)local_b8 + -0xeb73d;" (assignment_expression "auStack_124[2] = (int)local_b8 + -0xeb73d" (subscript_expression "auStack_124[2]" identifier [ number_literal ]) = (binary_expression "(int)local_b8 + -0xeb73d" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (do_statement "do {\n    ppuVar11 = local_b8;\n    local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n    puVar34 = (uint *)*local_d8;\n    puVar32 = (uint *)local_d8[-1];\n    local_d4 = CONCAT44(local_d4._4_4_,puVar34);\n    if (puVar34 != puVar32) {\n      if (output_section == (Output_section *)0x0) {\n        local_b4 = uVar39;\n        puVar35[-2] = (uint)(local_b8 + -0x3dd65);\n        puVar35[-3] = 0x6ed;\n        puVar35[-4] = (int)ppuVar11 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        puVar35[-5] = (uint)&LAB_00161519;\n        do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n      }\n      SVar8 = (this->input_section_patterns_).\n              super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort;\n      if (SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE) {\n        local_fc = this->filename_sort_;\n        local_f8 = SVar8;\n        iVar23 = (int)puVar34 - (int)puVar32;\n        if (0x7fffffc0 < iVar23) {\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }\n        if (0 < iVar23) {\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = auStack_124[2];\nLAB_00160b72:\n        local_b4 = uVar39;\n        puVar35[-1] = local_f8;\n        puVar35[-2] = local_fc;\n        puVar35[-3] = (uint)(pointer)local_d4;\n        puVar35[-4] = (uint)puVar32;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        puVar35[-5] = 0x160b8a;\n        std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));\n        local_b4._0_4_ = (Relobj *)0x0;\n        pIVar25 = (Input_section *)0x0;\nLAB_00160b99:\n        pIVar36 = pIVar25;\n        if ((Relobj *)local_b4 != (Relobj *)pIVar25) {\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }\n        puVar35[-3] = local_100;\n        puVar35[-4] = (uint)pIVar25;\n        puVar35[-5] = 0x160be4;\n        operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        puVar32 = (uint *)local_d8[-1];\n        if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;\n      }\n      local_b4._0_4_ = (Relobj *)puVar32;\n      do {\n        sis.shndx_ = *(uint *)(Relobj *)local_b4;\n        sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);\n        sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);\n        sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);\n        sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);\n        sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);\n        if (sis.p2align_ == 0) {\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }\n        else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }\n        puVar35[-3] = (uint)local_bc;\n        puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        puVar35[-5] = 0x160d3f;\n        Output_section::add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);\n        local_cc = (int)(pointer)local_d4 + local_c4;\n        local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);\n      } while ((Relobj *)*local_d8 != (Relobj *)local_b4);\n    }\nLAB_00160c00:\n    local_ec = local_ec + 1;\n    local_d8 = local_d8 + 3;\n    if (local_ec == local_f4) {\n      if (((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||\n         (output_section->type_ != 8)) {\n        *(uint *)dot_value = local_cc;\n        *(uint *)((int)dot_value + 4) = local_c8;\n      }\n      else {\n        local_c8 = *(uint *)((int)dot_value + 4);\n        local_cc = (uint)*dot_value;\n      }\n      *(uint *)&this->final_dot_value_ = local_cc;\n      *(uint *)((int)&this->final_dot_value_ + 4) = local_c8;\n      this->final_dot_section_ = *dot_section;\n      piVar22 = local_114;\n      if (local_110 != local_114) {\n        do {\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        } while (piVar22 != local_110);\n      }\n      local_b4 = uVar39;\n      puVar35[-4] = (uint)local_114;\n      puVar35[-5] = 0x160cfa;\n      operator_delete((void *)puVar35[-4]);\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    ppuVar11 = local_b8;\n    local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n    puVar34 = (uint *)*local_d8;\n    puVar32 = (uint *)local_d8[-1];\n    local_d4 = CONCAT44(local_d4._4_4_,puVar34);\n    if (puVar34 != puVar32) {\n      if (output_section == (Output_section *)0x0) {\n        local_b4 = uVar39;\n        puVar35[-2] = (uint)(local_b8 + -0x3dd65);\n        puVar35[-3] = 0x6ed;\n        puVar35[-4] = (int)ppuVar11 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        puVar35[-5] = (uint)&LAB_00161519;\n        do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n      }\n      SVar8 = (this->input_section_patterns_).\n              super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort;\n      if (SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE) {\n        local_fc = this->filename_sort_;\n        local_f8 = SVar8;\n        iVar23 = (int)puVar34 - (int)puVar32;\n        if (0x7fffffc0 < iVar23) {\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }\n        if (0 < iVar23) {\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = auStack_124[2];\nLAB_00160b72:\n        local_b4 = uVar39;\n        puVar35[-1] = local_f8;\n        puVar35[-2] = local_fc;\n        puVar35[-3] = (uint)(pointer)local_d4;\n        puVar35[-4] = (uint)puVar32;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        puVar35[-5] = 0x160b8a;\n        std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));\n        local_b4._0_4_ = (Relobj *)0x0;\n        pIVar25 = (Input_section *)0x0;\nLAB_00160b99:\n        pIVar36 = pIVar25;\n        if ((Relobj *)local_b4 != (Relobj *)pIVar25) {\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }\n        puVar35[-3] = local_100;\n        puVar35[-4] = (uint)pIVar25;\n        puVar35[-5] = 0x160be4;\n        operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        puVar32 = (uint *)local_d8[-1];\n        if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;\n      }\n      local_b4._0_4_ = (Relobj *)puVar32;\n      do {\n        sis.shndx_ = *(uint *)(Relobj *)local_b4;\n        sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);\n        sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);\n        sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);\n        sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);\n        sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);\n        if (sis.p2align_ == 0) {\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }\n        else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }\n        puVar35[-3] = (uint)local_bc;\n        puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        puVar35[-5] = 0x160d3f;\n        Output_section::add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);\n        local_cc = (int)(pointer)local_d4 + local_c4;\n        local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);\n      } while ((Relobj *)*local_d8 != (Relobj *)local_b4);\n    }\nLAB_00160c00:\n    local_ec = local_ec + 1;\n    local_d8 = local_d8 + 3;\n    if (local_ec == local_f4) {\n      if (((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||\n         (output_section->type_ != 8)) {\n        *(uint *)dot_value = local_cc;\n        *(uint *)((int)dot_value + 4) = local_c8;\n      }\n      else {\n        local_c8 = *(uint *)((int)dot_value + 4);\n        local_cc = (uint)*dot_value;\n      }\n      *(uint *)&this->final_dot_value_ = local_cc;\n      *(uint *)((int)&this->final_dot_value_ + 4) = local_c8;\n      this->final_dot_section_ = *dot_section;\n      piVar22 = local_114;\n      if (local_110 != local_114) {\n        do {\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        } while (piVar22 != local_110);\n      }\n      local_b4 = uVar39;\n      puVar35[-4] = (uint)local_114;\n      puVar35[-5] = 0x160cfa;\n      operator_delete((void *)puVar35[-4]);\n      return;\n    }\n  }" { (expression_statement "ppuVar11 = local_b8;" (assignment_expression "ppuVar11 = local_b8" identifier = identifier) ;) (expression_statement "local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);" (assignment_expression "local_b4._4_4_ = (undefined4)(uVar39 >> 0x20)" (field_expression "local_b4._4_4_" identifier . field_identifier) = (call_expression "(undefined4)(uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(uVar39 >> 0x20)" ( (binary_expression "uVar39 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "puVar34 = (uint *)*local_d8;" (assignment_expression "puVar34 = (uint *)*local_d8" identifier = (cast_expression "(uint *)*local_d8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_d8" * identifier))) ;) (expression_statement "puVar32 = (uint *)local_d8[-1];" (assignment_expression "puVar32 = (uint *)local_d8[-1]" identifier = (cast_expression "(uint *)local_d8[-1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_d8[-1]" identifier [ number_literal ]))) ;) (expression_statement "local_d4 = CONCAT44(local_d4._4_4_,puVar34);" (assignment_expression "local_d4 = CONCAT44(local_d4._4_4_,puVar34)" identifier = (call_expression "CONCAT44(local_d4._4_4_,puVar34)" identifier (argument_list "(local_d4._4_4_,puVar34)" ( (field_expression "local_d4._4_4_" identifier . field_identifier) , identifier )))) ;) (if_statement "if (puVar34 != puVar32) {\n      if (output_section == (Output_section *)0x0) {\n        local_b4 = uVar39;\n        puVar35[-2] = (uint)(local_b8 + -0x3dd65);\n        puVar35[-3] = 0x6ed;\n        puVar35[-4] = (int)ppuVar11 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        puVar35[-5] = (uint)&LAB_00161519;\n        do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n      }\n      SVar8 = (this->input_section_patterns_).\n              super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort;\n      if (SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE) {\n        local_fc = this->filename_sort_;\n        local_f8 = SVar8;\n        iVar23 = (int)puVar34 - (int)puVar32;\n        if (0x7fffffc0 < iVar23) {\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }\n        if (0 < iVar23) {\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = auStack_124[2];\nLAB_00160b72:\n        local_b4 = uVar39;\n        puVar35[-1] = local_f8;\n        puVar35[-2] = local_fc;\n        puVar35[-3] = (uint)(pointer)local_d4;\n        puVar35[-4] = (uint)puVar32;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        puVar35[-5] = 0x160b8a;\n        std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));\n        local_b4._0_4_ = (Relobj *)0x0;\n        pIVar25 = (Input_section *)0x0;\nLAB_00160b99:\n        pIVar36 = pIVar25;\n        if ((Relobj *)local_b4 != (Relobj *)pIVar25) {\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }\n        puVar35[-3] = local_100;\n        puVar35[-4] = (uint)pIVar25;\n        puVar35[-5] = 0x160be4;\n        operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        puVar32 = (uint *)local_d8[-1];\n        if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;\n      }\n      local_b4._0_4_ = (Relobj *)puVar32;\n      do {\n        sis.shndx_ = *(uint *)(Relobj *)local_b4;\n        sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);\n        sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);\n        sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);\n        sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);\n        sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);\n        if (sis.p2align_ == 0) {\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }\n        else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }\n        puVar35[-3] = (uint)local_bc;\n        puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        puVar35[-5] = 0x160d3f;\n        Output_section::add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);\n        local_cc = (int)(pointer)local_d4 + local_c4;\n        local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);\n      } while ((Relobj *)*local_d8 != (Relobj *)local_b4);\n    }" if (parenthesized_expression "(puVar34 != puVar32)" ( (binary_expression "puVar34 != puVar32" identifier != identifier) )) (compound_statement "{\n      if (output_section == (Output_section *)0x0) {\n        local_b4 = uVar39;\n        puVar35[-2] = (uint)(local_b8 + -0x3dd65);\n        puVar35[-3] = 0x6ed;\n        puVar35[-4] = (int)ppuVar11 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        puVar35[-5] = (uint)&LAB_00161519;\n        do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n      }\n      SVar8 = (this->input_section_patterns_).\n              super__Vector_base<gold::Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort;\n      if (SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE) {\n        local_fc = this->filename_sort_;\n        local_f8 = SVar8;\n        iVar23 = (int)puVar34 - (int)puVar32;\n        if (0x7fffffc0 < iVar23) {\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }\n        if (0 < iVar23) {\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = auStack_124[2];\nLAB_00160b72:\n        local_b4 = uVar39;\n        puVar35[-1] = local_f8;\n        puVar35[-2] = local_fc;\n        puVar35[-3] = (uint)(pointer)local_d4;\n        puVar35[-4] = (uint)puVar32;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        puVar35[-5] = 0x160b8a;\n        std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));\n        local_b4._0_4_ = (Relobj *)0x0;\n        pIVar25 = (Input_section *)0x0;\nLAB_00160b99:\n        pIVar36 = pIVar25;\n        if ((Relobj *)local_b4 != (Relobj *)pIVar25) {\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }\n        puVar35[-3] = local_100;\n        puVar35[-4] = (uint)pIVar25;\n        puVar35[-5] = 0x160be4;\n        operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        puVar32 = (uint *)local_d8[-1];\n        if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;\n      }\n      local_b4._0_4_ = (Relobj *)puVar32;\n      do {\n        sis.shndx_ = *(uint *)(Relobj *)local_b4;\n        sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);\n        sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);\n        sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);\n        sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);\n        sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);\n        if (sis.p2align_ == 0) {\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }\n        else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }\n        puVar35[-3] = (uint)local_bc;\n        puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        puVar35[-5] = 0x160d3f;\n        Output_section::add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);\n        local_cc = (int)(pointer)local_d4 + local_c4;\n        local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);\n      } while ((Relobj *)*local_d8 != (Relobj *)local_b4);\n    }" { (if_statement "if (output_section == (Output_section *)0x0) {\n        local_b4 = uVar39;\n        puVar35[-2] = (uint)(local_b8 + -0x3dd65);\n        puVar35[-3] = 0x6ed;\n        puVar35[-4] = (int)ppuVar11 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        puVar35[-5] = (uint)&LAB_00161519;\n        do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n      }" if (parenthesized_expression "(output_section == (Output_section *)0x0)" ( (binary_expression "output_section == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_b4 = uVar39;\n        puVar35[-2] = (uint)(local_b8 + -0x3dd65);\n        puVar35[-3] = 0x6ed;\n        puVar35[-4] = (int)ppuVar11 + -0xf7f6d;\n                    /* WARNING: Subroutine does not return */\n        puVar35[-5] = (uint)&LAB_00161519;\n        do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n      }" { (expression_statement "local_b4 = uVar39;" (assignment_expression "local_b4 = uVar39" identifier = identifier) ;) (expression_statement "puVar35[-2] = (uint)(local_b8 + -0x3dd65);" (assignment_expression "puVar35[-2] = (uint)(local_b8 + -0x3dd65)" (subscript_expression "puVar35[-2]" identifier [ number_literal ]) = (call_expression "(uint)(local_b8 + -0x3dd65)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 + -0x3dd65)" ( (binary_expression "local_b8 + -0x3dd65" identifier + number_literal) )))) ;) (expression_statement "puVar35[-3] = 0x6ed;" (assignment_expression "puVar35[-3] = 0x6ed" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar35[-4] = (int)ppuVar11 + -0xf7f6d;" (assignment_expression "puVar35[-4] = (int)ppuVar11 + -0xf7f6d" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (binary_expression "(int)ppuVar11 + -0xf7f6d" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "puVar35[-5] = (uint)&LAB_00161519;" (assignment_expression "puVar35[-5] = (uint)&LAB_00161519" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = (binary_expression "(uint)&LAB_00161519" (parenthesized_expression "(uint)" ( identifier )) & identifier)) ;) (expression_statement "do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);" (call_expression "do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2])" identifier (argument_list "((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2])" ( (cast_expression "(char *)puVar35[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) , (subscript_expression "puVar35[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar35[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-2]" identifier [ number_literal ])) ))) ;) })) (ERROR "SVar8 = (this->input_section_patterns_).\n              super__Vector_base<gold::" (assignment_expression "SVar8 = (this->input_section_patterns_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->input_section_patterns_).\n              super__Vector_base<gold" (field_expression "(this->input_section_patterns_).\n              super__Vector_base" (parenthesized_expression "(this->input_section_patterns_)" ( (field_expression "this->input_section_patterns_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section_element_input::Input_section_pattern,_std::allocator<gold::Output_section_element_input::Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort;" statement_identifier (ERROR "::Input_section_pattern,_std::allocator<gold:" : : (comma_expression "Input_section_pattern,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section_element_input::Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort;" (field_expression "Input_section_pattern>_>\n              ._M_impl._M_start[local_ec].sort" (subscript_expression "Input_section_pattern>_>\n              ._M_impl._M_start[local_ec]" (field_expression "Input_section_pattern>_>\n              ._M_impl._M_start" (field_expression "Input_section_pattern>_>\n              ._M_impl" (binary_expression "Input_section_pattern>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ identifier ]) . field_identifier) ;))) (if_statement "if (SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE) {\n        local_fc = this->filename_sort_;\n        local_f8 = SVar8;\n        iVar23 = (int)puVar34 - (int)puVar32;\n        if (0x7fffffc0 < iVar23) {\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }\n        if (0 < iVar23) {\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = auStack_124[2];\nLAB_00160b72:\n        local_b4 = uVar39;\n        puVar35[-1] = local_f8;\n        puVar35[-2] = local_fc;\n        puVar35[-3] = (uint)(pointer)local_d4;\n        puVar35[-4] = (uint)puVar32;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        puVar35[-5] = 0x160b8a;\n        std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));\n        local_b4._0_4_ = (Relobj *)0x0;\n        pIVar25 = (Input_section *)0x0;\nLAB_00160b99:\n        pIVar36 = pIVar25;\n        if ((Relobj *)local_b4 != (Relobj *)pIVar25) {\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }\n        puVar35[-3] = local_100;\n        puVar35[-4] = (uint)pIVar25;\n        puVar35[-5] = 0x160be4;\n        operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        puVar32 = (uint *)local_d8[-1];\n        if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;\n      }" if (parenthesized_expression "(SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE)" ( (binary_expression "SVar8 != SORT_WILDCARD_NONE || this->filename_sort_ != SORT_WILDCARD_NONE" (binary_expression "SVar8 != SORT_WILDCARD_NONE" identifier != identifier) || (binary_expression "this->filename_sort_ != SORT_WILDCARD_NONE" (field_expression "this->filename_sort_" identifier -> field_identifier) != identifier)) )) (compound_statement "{\n        local_fc = this->filename_sort_;\n        local_f8 = SVar8;\n        iVar23 = (int)puVar34 - (int)puVar32;\n        if (0x7fffffc0 < iVar23) {\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }\n        if (0 < iVar23) {\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = auStack_124[2];\nLAB_00160b72:\n        local_b4 = uVar39;\n        puVar35[-1] = local_f8;\n        puVar35[-2] = local_fc;\n        puVar35[-3] = (uint)(pointer)local_d4;\n        puVar35[-4] = (uint)puVar32;\n                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */\n        puVar35[-5] = 0x160b8a;\n        std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));\n        local_b4._0_4_ = (Relobj *)0x0;\n        pIVar25 = (Input_section *)0x0;\nLAB_00160b99:\n        pIVar36 = pIVar25;\n        if ((Relobj *)local_b4 != (Relobj *)pIVar25) {\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }\n        puVar35[-3] = local_100;\n        puVar35[-4] = (uint)pIVar25;\n        puVar35[-5] = 0x160be4;\n        operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        puVar32 = (uint *)local_d8[-1];\n        if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;\n      }" { (expression_statement "local_fc = this->filename_sort_;" (assignment_expression "local_fc = this->filename_sort_" identifier = (field_expression "this->filename_sort_" identifier -> field_identifier)) ;) (expression_statement "local_f8 = SVar8;" (assignment_expression "local_f8 = SVar8" identifier = identifier) ;) (expression_statement "iVar23 = (int)puVar34 - (int)puVar32;" (assignment_expression "iVar23 = (int)puVar34 - (int)puVar32" identifier = (binary_expression "(int)puVar34 - (int)puVar32" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (0x7fffffc0 < iVar23) {\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }" if (parenthesized_expression "(0x7fffffc0 < iVar23)" ( (binary_expression "0x7fffffc0 < iVar23" number_literal < identifier) )) (compound_statement "{\n          iVar23 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = local_e8;\nLAB_001609e8:\n          puVar35[-3] = local_e8;\n          puVar35[-4] = iVar23 << 6;\n          local_b4._0_4_ = (Relobj *)(iVar23 << 6);\n          puVar35[-5] = 0x160a08;\n          pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);\n          iVar26 = (int)(Relobj *)local_b4;\n          uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n          if (pIVar25 == (Input_section *)0x0) break;\n          local_108 = puVar32 + 8;\n          local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);\n          pIVar25->shndx_ = *puVar32;\n          pIVar25->p2align_ = puVar32[1];\n          *(uint *)&pIVar25->u1_ = puVar32[2];\n          *(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];\n          pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);\n          pIVar25->section_order_index_ = puVar32[5];\n          paVar28 = &pIVar25[1].u1_;\n          pIVar25[1].shndx_ = (uint)paVar28;\n          if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }\n          uVar33 = puVar32[0xd];\n          pIVar25[1].p2align_ = puVar32[7];\n          puVar32[7] = 0;\n          puVar32[6] = (uint)local_108;\n          uVar31 = puVar32[0xc];\n          *(undefined1 *)(puVar32 + 8) = 0;\n          pIVar25[2].p2align_ = uVar33;\n          uVar33 = puVar32[0xf];\n          pIVar25[2].shndx_ = uVar31;\n          uVar31 = puVar32[0xe];\n          *(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;\n          *(uint *)&pIVar25[2].u1_ = uVar31;\n          if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }\n          *puVar32 = local_bc->shndx_;\n          puVar32[1] = local_bc->p2align_;\n          puVar32[2] = *(uint *)&local_bc->u1_;\n          puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);\n          *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;\n          puVar32[5] = local_bc->section_order_index_;\n          local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n          local_10c = (uint *)local_bc[1].shndx_;\n          if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }\nLAB_001611b8:\n          local_bc[1].p2align_ = 0;\n          *(undefined1 *)local_104 = 0;\n          uVar33 = local_bc[2].p2align_;\n          puVar32[0xc] = local_bc[2].shndx_;\n          puVar32[0xd] = uVar33;\n          uVar33 = *(uint *)&local_bc[2].u1_;\n          puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);\n          puVar32[0xe] = uVar33;\n          puVar35[-3] = local_f8;\n          puVar35[-4] = local_fc;\n          puVar35[-5] = iVar23;\n          puVar35[-6] = (uint)pIVar25;\n          puVar35[-7] = (uint)(pointer)local_d4;\n          puVar35[-8] = (uint)puVar32;\n                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */\n          puVar35[-9] = 0x161203;\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));\n          goto LAB_00160b99;\n        }" { (expression_statement "iVar23 = 0x1ffffff;" (assignment_expression "iVar23 = 0x1ffffff" identifier = number_literal) ;) (labeled_statement "LAB_001609ce:\n          local_100 = local_e8;" statement_identifier : (expression_statement "local_100 = local_e8;" (assignment_expression "local_100 = local_e8" identifier = identifier) ;)) (labeled_statement "LAB_001609e8:\n          puVar35[-3] = local_e8;" statement_identifier : (expression_statement "puVar35[-3] = local_e8;" (assignment_expression "puVar35[-3] = local_e8" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar35[-4] = iVar23 << 6;" (assignment_expression "puVar35[-4] = iVar23 << 6" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (binary_expression "iVar23 << 6" identifier << number_literal)) ;) (expression_statement "local_b4._0_4_ = (Relobj *)(iVar23 << 6);" (assignment_expression "local_b4._0_4_ = (Relobj *)(iVar23 << 6)" (field_expression "local_b4._0_4_" identifier . field_identifier) = (cast_expression "(Relobj *)(iVar23 << 6)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 << 6)" ( (binary_expression "iVar23 << 6" identifier << number_literal) )))) ;) (expression_statement "puVar35[-5] = 0x160a08;" (assignment_expression "puVar35[-5] = 0x160a08" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3]);" (assignment_expression "pIVar25 = (Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3])" identifier = (cast_expression "(Input_section *)operator_new(puVar35[-4],(nothrow_t *)puVar35[-3])" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(puVar35[-4],(nothrow_t *)puVar35[-3])" identifier (argument_list "(puVar35[-4],(nothrow_t *)puVar35[-3])" ( (subscript_expression "puVar35[-4]" identifier [ number_literal ]) , (cast_expression "(nothrow_t *)puVar35[-3]" ( (type_descriptor "nothrow_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-3]" identifier [ number_literal ])) ))))) ;) (expression_statement "iVar26 = (int)(Relobj *)local_b4;" (assignment_expression "iVar26 = (int)(Relobj *)local_b4" identifier = (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);" (assignment_expression "uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4)" identifier = (call_expression "CONCAT44(local_b4._4_4_,(Relobj *)local_b4)" identifier (argument_list "(local_b4._4_4_,(Relobj *)local_b4)" ( (field_expression "local_b4._4_4_" identifier . field_identifier) , (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (pIVar25 == (Input_section *)0x0) break;" if (parenthesized_expression "(pIVar25 == (Input_section *)0x0)" ( (binary_expression "pIVar25 == (Input_section *)0x0" identifier == (cast_expression "(Input_section *)0x0" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_108 = puVar32 + 8;" (assignment_expression "local_108 = puVar32 + 8" identifier = (binary_expression "puVar32 + 8" identifier + number_literal)) ;) (expression_statement "local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4);" (assignment_expression "local_b4._0_4_ = (Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4)" (field_expression "local_b4._0_4_" identifier . field_identifier) = (cast_expression "(Relobj *)((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar25->shndx_ + (int)(Relobj *)local_b4)" ( (binary_expression "(int)&pIVar25->shndx_ + (int)(Relobj *)local_b4" (cast_expression "(int)&pIVar25->shndx_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar25->shndx_" & (field_expression "pIVar25->shndx_" identifier -> field_identifier))) + (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )))) ;) (expression_statement "pIVar25->shndx_ = *puVar32;" (assignment_expression "pIVar25->shndx_ = *puVar32" (field_expression "pIVar25->shndx_" identifier -> field_identifier) = (pointer_expression "*puVar32" * identifier)) ;) (expression_statement "pIVar25->p2align_ = puVar32[1];" (assignment_expression "pIVar25->p2align_ = puVar32[1]" (field_expression "pIVar25->p2align_" identifier -> field_identifier) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)&pIVar25->u1_ = puVar32[2];" (assignment_expression "*(uint *)&pIVar25->u1_ = puVar32[2]" (pointer_expression "*(uint *)&pIVar25->u1_" * (cast_expression "(uint *)&pIVar25->u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar25->u1_" & (field_expression "pIVar25->u1_" identifier -> field_identifier)))) = (subscript_expression "puVar32[2]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3];" (assignment_expression "*(uint *)((int)&pIVar25->u1_ + 4) = puVar32[3]" (pointer_expression "*(uint *)((int)&pIVar25->u1_ + 4)" * (cast_expression "(uint *)((int)&pIVar25->u1_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar25->u1_ + 4)" ( (binary_expression "(int)&pIVar25->u1_ + 4" (cast_expression "(int)&pIVar25->u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar25->u1_" & (field_expression "pIVar25->u1_" identifier -> field_identifier))) + number_literal) )))) = (subscript_expression "puVar32[3]" identifier [ number_literal ])) ;) (expression_statement "pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4);" (assignment_expression "pIVar25->u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4)" (field_expression "pIVar25->u2_" identifier -> field_identifier) = (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) ))))) ;) (expression_statement "pIVar25->section_order_index_ = puVar32[5];" (assignment_expression "pIVar25->section_order_index_ = puVar32[5]" (field_expression "pIVar25->section_order_index_" identifier -> field_identifier) = (subscript_expression "puVar32[5]" identifier [ number_literal ])) ;) (expression_statement "paVar28 = &pIVar25[1].u1_;" (assignment_expression "paVar28 = &pIVar25[1].u1_" identifier = (pointer_expression "&pIVar25[1].u1_" & (field_expression "pIVar25[1].u1_" (subscript_expression "pIVar25[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pIVar25[1].shndx_ = (uint)paVar28;" (assignment_expression "pIVar25[1].shndx_ = (uint)paVar28" (field_expression "pIVar25[1].shndx_" (subscript_expression "pIVar25[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(uint)paVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((uint *)puVar32[6] == local_108) {\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }\n          else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }" if (parenthesized_expression "((uint *)puVar32[6] == local_108)" ( (binary_expression "(uint *)puVar32[6] == local_108" (cast_expression "(uint *)puVar32[6]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[6]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n            *(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];\n            pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);\n            pIVar25[1].section_order_index_ = puVar32[0xb];\n          }" { (expression_statement "*(uint *)&pIVar25[1].u1_ = puVar32[8];" (assignment_expression "*(uint *)&pIVar25[1].u1_ = puVar32[8]" (pointer_expression "*(uint *)&pIVar25[1].u1_" * (cast_expression "(uint *)&pIVar25[1].u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar25[1].u1_" & (field_expression "pIVar25[1].u1_" (subscript_expression "pIVar25[1]" identifier [ number_literal ]) . field_identifier)))) = (subscript_expression "puVar32[8]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9];" (assignment_expression "*(uint *)((int)&pIVar25[1].u1_ + 4) = puVar32[9]" (pointer_expression "*(uint *)((int)&pIVar25[1].u1_ + 4)" * (cast_expression "(uint *)((int)&pIVar25[1].u1_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar25[1].u1_ + 4)" ( (binary_expression "(int)&pIVar25[1].u1_ + 4" (cast_expression "(int)&pIVar25[1].u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar25[1].u1_" & (field_expression "pIVar25[1].u1_" (subscript_expression "pIVar25[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = (subscript_expression "puVar32[9]" identifier [ number_literal ])) ;) (expression_statement "pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10);" (assignment_expression "pIVar25[1].u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10)" (field_expression "pIVar25[1].u2_" (subscript_expression "pIVar25[1]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 10)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) ))))) ;) (expression_statement "pIVar25[1].section_order_index_ = puVar32[0xb];" (assignment_expression "pIVar25[1].section_order_index_ = puVar32[0xb]" (field_expression "pIVar25[1].section_order_index_" (subscript_expression "pIVar25[1]" identifier [ number_literal ]) . field_identifier) = (subscript_expression "puVar32[0xb]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }" else (compound_statement "{\n            pIVar25[1].shndx_ = puVar32[6];\n            *(uint *)&pIVar25[1].u1_ = puVar32[8];\n          }" { (expression_statement "pIVar25[1].shndx_ = puVar32[6];" (assignment_expression "pIVar25[1].shndx_ = puVar32[6]" (field_expression "pIVar25[1].shndx_" (subscript_expression "pIVar25[1]" identifier [ number_literal ]) . field_identifier) = (subscript_expression "puVar32[6]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)&pIVar25[1].u1_ = puVar32[8];" (assignment_expression "*(uint *)&pIVar25[1].u1_ = puVar32[8]" (pointer_expression "*(uint *)&pIVar25[1].u1_" * (cast_expression "(uint *)&pIVar25[1].u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar25[1].u1_" & (field_expression "pIVar25[1].u1_" (subscript_expression "pIVar25[1]" identifier [ number_literal ]) . field_identifier)))) = (subscript_expression "puVar32[8]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar33 = puVar32[0xd];" (assignment_expression "uVar33 = puVar32[0xd]" identifier = (subscript_expression "puVar32[0xd]" identifier [ number_literal ])) ;) (expression_statement "pIVar25[1].p2align_ = puVar32[7];" (assignment_expression "pIVar25[1].p2align_ = puVar32[7]" (field_expression "pIVar25[1].p2align_" (subscript_expression "pIVar25[1]" identifier [ number_literal ]) . field_identifier) = (subscript_expression "puVar32[7]" identifier [ number_literal ])) ;) (expression_statement "puVar32[7] = 0;" (assignment_expression "puVar32[7] = 0" (subscript_expression "puVar32[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[6] = (uint)local_108;" (assignment_expression "puVar32[6] = (uint)local_108" (subscript_expression "puVar32[6]" identifier [ number_literal ]) = (cast_expression "(uint)local_108" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar31 = puVar32[0xc];" (assignment_expression "uVar31 = puVar32[0xc]" identifier = (subscript_expression "puVar32[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar32 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 8)" * (cast_expression "(undefined1 *)(puVar32 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pIVar25[2].p2align_ = uVar33;" (assignment_expression "pIVar25[2].p2align_ = uVar33" (field_expression "pIVar25[2].p2align_" (subscript_expression "pIVar25[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "uVar33 = puVar32[0xf];" (assignment_expression "uVar33 = puVar32[0xf]" identifier = (subscript_expression "puVar32[0xf]" identifier [ number_literal ])) ;) (expression_statement "pIVar25[2].shndx_ = uVar31;" (assignment_expression "pIVar25[2].shndx_ = uVar31" (field_expression "pIVar25[2].shndx_" (subscript_expression "pIVar25[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "uVar31 = puVar32[0xe];" (assignment_expression "uVar31 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33;" (assignment_expression "*(uint *)((int)&pIVar25[2].u1_ + 4) = uVar33" (pointer_expression "*(uint *)((int)&pIVar25[2].u1_ + 4)" * (cast_expression "(uint *)((int)&pIVar25[2].u1_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar25[2].u1_ + 4)" ( (binary_expression "(int)&pIVar25[2].u1_ + 4" (cast_expression "(int)&pIVar25[2].u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar25[2].u1_" & (field_expression "pIVar25[2].u1_" (subscript_expression "pIVar25[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)&pIVar25[2].u1_ = uVar31;" (assignment_expression "*(uint *)&pIVar25[2].u1_ = uVar31" (pointer_expression "*(uint *)&pIVar25[2].u1_" * (cast_expression "(uint *)&pIVar25[2].u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar25[2].u1_" & (field_expression "pIVar25[2].u1_" (subscript_expression "pIVar25[2]" identifier [ number_literal ]) . field_identifier)))) = identifier) ;) (if_statement "if ((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_) {\n            local_bc = pIVar25;\n          }\n          else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }" if (parenthesized_expression "((Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_)" ( (binary_expression "(Relobj *)local_b4 == (Relobj *)&pIVar25[2].u2_" (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(Relobj *)&pIVar25[2].u2_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar25[2].u2_" & (field_expression "pIVar25[2].u2_" (subscript_expression "pIVar25[2]" identifier [ number_literal ]) . field_identifier)))) )) (compound_statement "{\n            local_bc = pIVar25;\n          }" { (expression_statement "local_bc = pIVar25;" (assignment_expression "local_bc = pIVar25" identifier = identifier) ;) }) (else_clause "else {\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }" else (compound_statement "{\n            auStack_124[3] = iVar23;\n            iVar1 = iVar26 + -0x20;\n            do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));\n            local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);\n            paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);\n          }" { (expression_statement "auStack_124[3] = iVar23;" (assignment_expression "auStack_124[3] = iVar23" (subscript_expression "auStack_124[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar1 = iVar26 + -0x20;" (assignment_expression "iVar1 = iVar26 + -0x20" identifier = (binary_expression "iVar26 + -0x20" identifier + number_literal)) ;) (do_statement "do {\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            } while (paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25));" do (compound_statement "{\n              puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;\n              *(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);\n              *(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);\n              *(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);\n              *(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);\n              *(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);\n              *(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);\n              paVar2 = paVar28 + 8;\n              *(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;\n              if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }\n              uVar33 = *(uint *)((int)paVar28 + -4);\n              uVar9 = *(undefined4 *)((int)paVar28 + 0x14);\n              ((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;\n              *(uint *)((int)paVar28 + -4) = 0;\n              *(uint *)((int)paVar28 + 0x3c) = uVar33;\n              *(undefined4 *)((int)paVar28 + 0x54) = uVar9;\n              *(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);\n              *(undefined1 *)paVar28 = 0;\n              *(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);\n              *(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);\n              paVar28 = paVar2;\n            }" { (expression_statement "puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_;" (assignment_expression "puVar10 = (undefined4 *)((Input_section *)(paVar28 + -1))->shndx_" identifier = (cast_expression "(undefined4 *)((Input_section *)(paVar28 + -1))->shndx_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((Input_section *)(paVar28 + -1))->shndx_" (parenthesized_expression "((Input_section *)(paVar28 + -1))" ( (cast_expression "(Input_section *)(paVar28 + -1)" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + -1)" ( (binary_expression "paVar28 + -1" identifier + number_literal) ))) )) -> field_identifier))) ;) (expression_statement "*(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4);" (assignment_expression "*(undefined4 *)(paVar28 + 4) = *(undefined4 *)(paVar28 + -4)" (pointer_expression "*(undefined4 *)(paVar28 + 4)" * (cast_expression "(undefined4 *)(paVar28 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 4)" ( (binary_expression "paVar28 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(paVar28 + -4)" * (cast_expression "(undefined4 *)(paVar28 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + -4)" ( (binary_expression "paVar28 + -4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c);" (assignment_expression "*(undefined4 *)((int)paVar28 + 0x24) = *(undefined4 *)((int)paVar28 + -0x1c)" (pointer_expression "*(undefined4 *)((int)paVar28 + 0x24)" * (cast_expression "(undefined4 *)((int)paVar28 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0x24)" ( (binary_expression "(int)paVar28 + 0x24" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar28 + -0x1c)" * (cast_expression "(undefined4 *)((int)paVar28 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + -0x1c)" ( (binary_expression "(int)paVar28 + -0x1c" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3);" (assignment_expression "*(undefined4 *)(paVar28 + 5) = *(undefined4 *)(paVar28 + -3)" (pointer_expression "*(undefined4 *)(paVar28 + 5)" * (cast_expression "(undefined4 *)(paVar28 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 5)" ( (binary_expression "paVar28 + 5" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(paVar28 + -3)" * (cast_expression "(undefined4 *)(paVar28 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + -3)" ( (binary_expression "paVar28 + -3" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14);" (assignment_expression "*(undefined4 *)((int)paVar28 + 0x2c) = *(undefined4 *)((int)paVar28 + -0x14)" (pointer_expression "*(undefined4 *)((int)paVar28 + 0x2c)" * (cast_expression "(undefined4 *)((int)paVar28 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0x2c)" ( (binary_expression "(int)paVar28 + 0x2c" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar28 + -0x14)" * (cast_expression "(undefined4 *)((int)paVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + -0x14)" ( (binary_expression "(int)paVar28 + -0x14" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2);" (assignment_expression "*(undefined4 *)(paVar28 + 6) = *(undefined4 *)(paVar28 + -2)" (pointer_expression "*(undefined4 *)(paVar28 + 6)" * (cast_expression "(undefined4 *)(paVar28 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 6)" ( (binary_expression "paVar28 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(paVar28 + -2)" * (cast_expression "(undefined4 *)(paVar28 + -2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + -2)" ( (binary_expression "paVar28 + -2" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc);" (assignment_expression "*(undefined4 *)((int)paVar28 + 0x34) = *(undefined4 *)((int)paVar28 + -0xc)" (pointer_expression "*(undefined4 *)((int)paVar28 + 0x34)" * (cast_expression "(undefined4 *)((int)paVar28 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0x34)" ( (binary_expression "(int)paVar28 + 0x34" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar28 + -0xc)" * (cast_expression "(undefined4 *)((int)paVar28 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + -0xc)" ( (binary_expression "(int)paVar28 + -0xc" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar2 = paVar28 + 8;" (assignment_expression "paVar2 = paVar28 + 8" identifier = (binary_expression "paVar28 + 8" identifier + number_literal)) ;) (expression_statement "*(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2;" (assignment_expression "*(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7) = paVar2" (pointer_expression "*(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7)" * (cast_expression "(anon_union_8_2_227b06d7_for_u1_ **)(paVar28 + 7)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(paVar28 + 7)" ( (binary_expression "paVar28 + 7" identifier + number_literal) )))) = identifier) ;) (if_statement "if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10) {\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }\n              else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }" if (parenthesized_expression "(paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10)" ( (binary_expression "paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)puVar10" identifier == (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)puVar10" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n                *(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);\n                *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);\n                *(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);\n              }" { (expression_statement "*(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;" (assignment_expression "*(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28" (pointer_expression "*(undefined4 *)(paVar28 + 8)" * (cast_expression "(undefined4 *)(paVar28 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 8)" ( (binary_expression "paVar28 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)paVar28" * (cast_expression "(undefined4 *)paVar28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4);" (assignment_expression "*(undefined4 *)((int)paVar28 + 0x44) = *(undefined4 *)((int)paVar28 + 4)" (pointer_expression "*(undefined4 *)((int)paVar28 + 0x44)" * (cast_expression "(undefined4 *)((int)paVar28 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0x44)" ( (binary_expression "(int)paVar28 + 0x44" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar28 + 4)" * (cast_expression "(undefined4 *)((int)paVar28 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 4)" ( (binary_expression "(int)paVar28 + 4" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1);" (assignment_expression "*(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9) =\n                     *(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1)" (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 9)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 9)" ( (binary_expression "paVar28 + 9" identifier + number_literal) )))) = (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(paVar28 + 1)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 1)" ( (binary_expression "paVar28 + 1" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc);" (assignment_expression "*(uint *)((int)paVar28 + 0x4c) = *(uint *)((int)paVar28 + 0xc)" (pointer_expression "*(uint *)((int)paVar28 + 0x4c)" * (cast_expression "(uint *)((int)paVar28 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0x4c)" ( (binary_expression "(int)paVar28 + 0x4c" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(uint *)((int)paVar28 + 0xc)" * (cast_expression "(uint *)((int)paVar28 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0xc)" ( (binary_expression "(int)paVar28 + 0xc" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }" else (compound_statement "{\n                *(undefined4 **)(paVar28 + 7) = puVar10;\n                *(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;\n              }" { (expression_statement "*(undefined4 **)(paVar28 + 7) = puVar10;" (assignment_expression "*(undefined4 **)(paVar28 + 7) = puVar10" (pointer_expression "*(undefined4 **)(paVar28 + 7)" * (cast_expression "(undefined4 **)(paVar28 + 7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(paVar28 + 7)" ( (binary_expression "paVar28 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28;" (assignment_expression "*(undefined4 *)(paVar28 + 8) = *(undefined4 *)paVar28" (pointer_expression "*(undefined4 *)(paVar28 + 8)" * (cast_expression "(undefined4 *)(paVar28 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 8)" ( (binary_expression "paVar28 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)paVar28" * (cast_expression "(undefined4 *)paVar28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (expression_statement "uVar33 = *(uint *)((int)paVar28 + -4);" (assignment_expression "uVar33 = *(uint *)((int)paVar28 + -4)" identifier = (pointer_expression "*(uint *)((int)paVar28 + -4)" * (cast_expression "(uint *)((int)paVar28 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + -4)" ( (binary_expression "(int)paVar28 + -4" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)((int)paVar28 + 0x14);" (assignment_expression "uVar9 = *(undefined4 *)((int)paVar28 + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)paVar28 + 0x14)" * (cast_expression "(undefined4 *)((int)paVar28 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0x14)" ( (binary_expression "(int)paVar28 + 0x14" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28;" (assignment_expression "((Input_section *)(paVar28 + -1))->shndx_ = (uint)paVar28" (field_expression "((Input_section *)(paVar28 + -1))->shndx_" (parenthesized_expression "((Input_section *)(paVar28 + -1))" ( (cast_expression "(Input_section *)(paVar28 + -1)" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + -1)" ( (binary_expression "paVar28 + -1" identifier + number_literal) ))) )) -> field_identifier) = (cast_expression "(uint)paVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)paVar28 + -4) = 0;" (assignment_expression "*(uint *)((int)paVar28 + -4) = 0" (pointer_expression "*(uint *)((int)paVar28 + -4)" * (cast_expression "(uint *)((int)paVar28 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + -4)" ( (binary_expression "(int)paVar28 + -4" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((int)paVar28 + 0x3c) = uVar33;" (assignment_expression "*(uint *)((int)paVar28 + 0x3c) = uVar33" (pointer_expression "*(uint *)((int)paVar28 + 0x3c)" * (cast_expression "(uint *)((int)paVar28 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0x3c)" ( (binary_expression "(int)paVar28 + 0x3c" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)paVar28 + 0x54) = uVar9;" (assignment_expression "*(undefined4 *)((int)paVar28 + 0x54) = uVar9" (pointer_expression "*(undefined4 *)((int)paVar28 + 0x54)" * (cast_expression "(undefined4 *)((int)paVar28 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0x54)" ( (binary_expression "(int)paVar28 + 0x54" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2);" (assignment_expression "*(undefined4 *)(paVar28 + 10) = *(undefined4 *)(paVar28 + 2)" (pointer_expression "*(undefined4 *)(paVar28 + 10)" * (cast_expression "(undefined4 *)(paVar28 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 10)" ( (binary_expression "paVar28 + 10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(paVar28 + 2)" * (cast_expression "(undefined4 *)(paVar28 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 2)" ( (binary_expression "paVar28 + 2" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)paVar28 = 0;" (assignment_expression "*(undefined1 *)paVar28 = 0" (pointer_expression "*(undefined1 *)paVar28" * (cast_expression "(undefined1 *)paVar28" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3);" (assignment_expression "*(undefined4 *)(paVar28 + 0xb) = *(undefined4 *)(paVar28 + 3)" (pointer_expression "*(undefined4 *)(paVar28 + 0xb)" * (cast_expression "(undefined4 *)(paVar28 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 0xb)" ( (binary_expression "paVar28 + 0xb" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(paVar28 + 3)" * (cast_expression "(undefined4 *)(paVar28 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar28 + 3)" ( (binary_expression "paVar28 + 3" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c);" (assignment_expression "*(undefined4 *)((int)paVar28 + 0x5c) = *(undefined4 *)((int)paVar28 + 0x1c)" (pointer_expression "*(undefined4 *)((int)paVar28 + 0x5c)" * (cast_expression "(undefined4 *)((int)paVar28 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0x5c)" ( (binary_expression "(int)paVar28 + 0x5c" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar28 + 0x1c)" * (cast_expression "(undefined4 *)((int)paVar28 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar28 + 0x1c)" ( (binary_expression "(int)paVar28 + 0x1c" (cast_expression "(int)paVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar28 = paVar2;" (assignment_expression "paVar28 = paVar2" identifier = identifier) ;) }) while (parenthesized_expression "(paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25))" ( (binary_expression "paVar2 != (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25)" identifier != (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + (int)pIVar25)" ( (binary_expression "iVar1 + (int)pIVar25" identifier + (cast_expression "(int)pIVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) ;) (expression_statement "local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25);" (assignment_expression "local_bc = (Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25)" identifier = (cast_expression "(Input_section *)(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25)" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25)" ( (binary_expression "((iVar26 - 0x80U >> 6) + 1) * 0x40 + (int)pIVar25" (binary_expression "((iVar26 - 0x80U >> 6) + 1) * 0x40" (parenthesized_expression "((iVar26 - 0x80U >> 6) + 1)" ( (binary_expression "(iVar26 - 0x80U >> 6) + 1" (parenthesized_expression "(iVar26 - 0x80U >> 6)" ( (binary_expression "iVar26 - 0x80U >> 6" (binary_expression "iVar26 - 0x80U" identifier - number_literal) >> number_literal) )) + number_literal) )) * number_literal) + (cast_expression "(int)pIVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25);" (assignment_expression "paVar28 = (anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25)" identifier = (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)(iVar1 + (int)pIVar25)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + (int)pIVar25)" ( (binary_expression "iVar1 + (int)pIVar25" identifier + (cast_expression "(int)pIVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (expression_statement "*puVar32 = local_bc->shndx_;" (assignment_expression "*puVar32 = local_bc->shndx_" (pointer_expression "*puVar32" * identifier) = (field_expression "local_bc->shndx_" identifier -> field_identifier)) ;) (expression_statement "puVar32[1] = local_bc->p2align_;" (assignment_expression "puVar32[1] = local_bc->p2align_" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (field_expression "local_bc->p2align_" identifier -> field_identifier)) ;) (expression_statement "puVar32[2] = *(uint *)&local_bc->u1_;" (assignment_expression "puVar32[2] = *(uint *)&local_bc->u1_" (subscript_expression "puVar32[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)&local_bc->u1_" * (cast_expression "(uint *)&local_bc->u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_bc->u1_" & (field_expression "local_bc->u1_" identifier -> field_identifier))))) ;) (expression_statement "puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4);" (assignment_expression "puVar32[3] = *(uint *)((int)&local_bc->u1_ + 4)" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)&local_bc->u1_ + 4)" * (cast_expression "(uint *)((int)&local_bc->u1_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_bc->u1_ + 4)" ( (binary_expression "(int)&local_bc->u1_ + 4" (cast_expression "(int)&local_bc->u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_bc->u1_" & (field_expression "local_bc->u1_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_;" (assignment_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4) = local_bc->u2_" (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(puVar32 + 4)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) )))) = (field_expression "local_bc->u2_" identifier -> field_identifier)) ;) (expression_statement "puVar32[5] = local_bc->section_order_index_;" (assignment_expression "puVar32[5] = local_bc->section_order_index_" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = (field_expression "local_bc->section_order_index_" identifier -> field_identifier)) ;) (expression_statement "local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];" (assignment_expression "local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6]" identifier = (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)puVar32[6]" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[6]" identifier [ number_literal ]))) ;) (expression_statement "local_10c = (uint *)local_bc[1].shndx_;" (assignment_expression "local_10c = (uint *)local_bc[1].shndx_" identifier = (cast_expression "(uint *)local_bc[1].shndx_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_bc[1].shndx_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier))) ;) (if_statement "if (paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c) {\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }\n          else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }" if (parenthesized_expression "(paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c)" ( (binary_expression "paVar28 == (anon_union_8_2_227b06d7_for_u1_ *)local_10c" identifier == (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)local_10c" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            uVar33 = local_bc[1].p2align_;\n            if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }\n            puVar32[7] = uVar33;\n            *(undefined1 *)((int)local_104 + uVar33) = 0;\n            local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;\n          }" { (expression_statement "uVar33 = local_bc[1].p2align_;" (assignment_expression "uVar33 = local_bc[1].p2align_" identifier = (field_expression "local_bc[1].p2align_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (uVar33 != 0) {\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }" if (parenthesized_expression "(uVar33 != 0)" ( (binary_expression "uVar33 != 0" identifier != number_literal) )) (compound_statement "{\n              if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }\n            }" { (if_statement "if (uVar33 == 1) {\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }\n              else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }" if (parenthesized_expression "(uVar33 == 1)" ( (binary_expression "uVar33 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];\n                uVar33 = local_bc[1].p2align_;\n              }" { (expression_statement "*(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_;" (assignment_expression "*(undefined1 *)local_104 = *(undefined1 *)&local_bc[1].u1_" (pointer_expression "*(undefined1 *)local_104" * (cast_expression "(undefined1 *)local_104" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)&local_bc[1].u1_" * (cast_expression "(undefined1 *)&local_bc[1].u1_" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_bc[1].u1_" & (field_expression "local_bc[1].u1_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier))))) ;) (expression_statement "local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6];" (assignment_expression "local_104 = (anon_union_8_2_227b06d7_for_u1_ *)puVar32[6]" identifier = (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)puVar32[6]" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[6]" identifier [ number_literal ]))) ;) (expression_statement "uVar33 = local_bc[1].p2align_;" (assignment_expression "uVar33 = local_bc[1].p2align_" identifier = (field_expression "local_bc[1].p2align_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier)) ;) }) (else_clause "else {\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }" else (compound_statement "{\n                local_108 = puVar32;\n                puVar35[-2] = uVar33;\n                puVar35[-3] = (uint)paVar28;\n                puVar35[-4] = (uint)local_104;\n                puVar35[-5] = 0x16134b;\n                memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);\n                uVar33 = local_bc[1].p2align_;\n                local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];\n                puVar32 = local_108;\n              }" { (expression_statement "local_108 = puVar32;" (assignment_expression "local_108 = puVar32" identifier = identifier) ;) (expression_statement "puVar35[-2] = uVar33;" (assignment_expression "puVar35[-2] = uVar33" (subscript_expression "puVar35[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[-3] = (uint)paVar28;" (assignment_expression "puVar35[-3] = (uint)paVar28" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = (cast_expression "(uint)paVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-4] = (uint)local_104;" (assignment_expression "puVar35[-4] = (uint)local_104" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (cast_expression "(uint)local_104" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-5] = 0x16134b;" (assignment_expression "puVar35[-5] = 0x16134b" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2]);" (call_expression "memcpy((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2])" identifier (argument_list "((void *)puVar35[-4],(void *)puVar35[-3],puVar35[-2])" ( (cast_expression "(void *)puVar35[-4]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) , (cast_expression "(void *)puVar35[-3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-3]" identifier [ number_literal ])) , (subscript_expression "puVar35[-2]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar33 = local_bc[1].p2align_;" (assignment_expression "uVar33 = local_bc[1].p2align_" identifier = (field_expression "local_bc[1].p2align_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6];" (assignment_expression "local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_108[6]" identifier = (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)local_108[6]" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_108[6]" identifier [ number_literal ]))) ;) (expression_statement "puVar32 = local_108;" (assignment_expression "puVar32 = local_108" identifier = identifier) ;) }))) })) (expression_statement "puVar32[7] = uVar33;" (assignment_expression "puVar32[7] = uVar33" (subscript_expression "puVar32[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_104 + uVar33) = 0;" (assignment_expression "*(undefined1 *)((int)local_104 + uVar33) = 0" (pointer_expression "*(undefined1 *)((int)local_104 + uVar33)" * (cast_expression "(undefined1 *)((int)local_104 + uVar33)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_104 + uVar33)" ( (binary_expression "(int)local_104 + uVar33" (cast_expression "(int)local_104" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_;" (assignment_expression "local_104 = (anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_" identifier = (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)local_bc[1].shndx_" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_bc[1].shndx_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier))) ;) }) (else_clause "else {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }" else (compound_statement "{\n            if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_104 = paVar28;\n            local_bc[1].shndx_ = (uint)paVar28;\n          }" { (if_statement "if ((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104) {\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }\n            else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }" if (parenthesized_expression "((anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104)" ( (binary_expression "(anon_union_8_2_227b06d7_for_u1_ *)local_108 == local_104" (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)local_108" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n            }" { (expression_statement "puVar32[6] = (uint)local_10c;" (assignment_expression "puVar32[6] = (uint)local_10c" (subscript_expression "puVar32[6]" identifier [ number_literal ]) = (cast_expression "(uint)local_10c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar32[7] = local_bc[1].p2align_;" (assignment_expression "puVar32[7] = local_bc[1].p2align_" (subscript_expression "puVar32[7]" identifier [ number_literal ]) = (field_expression "local_bc[1].p2align_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "puVar32[8] = *(uint *)&local_bc[1].u1_;" (assignment_expression "puVar32[8] = *(uint *)&local_bc[1].u1_" (subscript_expression "puVar32[8]" identifier [ number_literal ]) = (pointer_expression "*(uint *)&local_bc[1].u1_" * (cast_expression "(uint *)&local_bc[1].u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_bc[1].u1_" & (field_expression "local_bc[1].u1_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier))))) ;) }) (else_clause "else {\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }" else (compound_statement "{\n              local_108 = (uint *)puVar32[8];\n              puVar32[6] = (uint)local_10c;\n              puVar32[7] = local_bc[1].p2align_;\n              puVar32[8] = *(uint *)&local_bc[1].u1_;\n              if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }\n            }" { (expression_statement "local_108 = (uint *)puVar32[8];" (assignment_expression "local_108 = (uint *)puVar32[8]" identifier = (cast_expression "(uint *)puVar32[8]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[8]" identifier [ number_literal ]))) ;) (expression_statement "puVar32[6] = (uint)local_10c;" (assignment_expression "puVar32[6] = (uint)local_10c" (subscript_expression "puVar32[6]" identifier [ number_literal ]) = (cast_expression "(uint)local_10c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar32[7] = local_bc[1].p2align_;" (assignment_expression "puVar32[7] = local_bc[1].p2align_" (subscript_expression "puVar32[7]" identifier [ number_literal ]) = (field_expression "local_bc[1].p2align_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "puVar32[8] = *(uint *)&local_bc[1].u1_;" (assignment_expression "puVar32[8] = *(uint *)&local_bc[1].u1_" (subscript_expression "puVar32[8]" identifier [ number_literal ]) = (pointer_expression "*(uint *)&local_bc[1].u1_" * (cast_expression "(uint *)&local_bc[1].u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_bc[1].u1_" & (field_expression "local_bc[1].u1_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier))))) ;) (if_statement "if (local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0) {\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }" if (parenthesized_expression "(local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0)" ( (binary_expression "local_104 != (anon_union_8_2_227b06d7_for_u1_ *)0x0" identifier != (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)0x0" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_bc[1].shndx_ = (uint)local_104;\n                *(uint **)&local_bc[1].u1_ = local_108;\n                goto LAB_001611b8;\n              }" { (expression_statement "local_bc[1].shndx_ = (uint)local_104;" (assignment_expression "local_bc[1].shndx_ = (uint)local_104" (field_expression "local_bc[1].shndx_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(uint)local_104" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint **)&local_bc[1].u1_ = local_108;" (assignment_expression "*(uint **)&local_bc[1].u1_ = local_108" (pointer_expression "*(uint **)&local_bc[1].u1_" * (cast_expression "(uint **)&local_bc[1].u1_" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_bc[1].u1_" & (field_expression "local_bc[1].u1_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier)))) = identifier) ;) (goto_statement "goto LAB_001611b8;" goto statement_identifier ;) })) }))) (expression_statement "local_104 = paVar28;" (assignment_expression "local_104 = paVar28" identifier = identifier) ;) (expression_statement "local_bc[1].shndx_ = (uint)paVar28;" (assignment_expression "local_bc[1].shndx_ = (uint)paVar28" (field_expression "local_bc[1].shndx_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(uint)paVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (labeled_statement "LAB_001611b8:\n          local_bc[1].p2align_ = 0;" statement_identifier : (expression_statement "local_bc[1].p2align_ = 0;" (assignment_expression "local_bc[1].p2align_ = 0" (field_expression "local_bc[1].p2align_" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;)) (expression_statement "*(undefined1 *)local_104 = 0;" (assignment_expression "*(undefined1 *)local_104 = 0" (pointer_expression "*(undefined1 *)local_104" * (cast_expression "(undefined1 *)local_104" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar33 = local_bc[2].p2align_;" (assignment_expression "uVar33 = local_bc[2].p2align_" identifier = (field_expression "local_bc[2].p2align_" (subscript_expression "local_bc[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "puVar32[0xc] = local_bc[2].shndx_;" (assignment_expression "puVar32[0xc] = local_bc[2].shndx_" (subscript_expression "puVar32[0xc]" identifier [ number_literal ]) = (field_expression "local_bc[2].shndx_" (subscript_expression "local_bc[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "puVar32[0xd] = uVar33;" (assignment_expression "puVar32[0xd] = uVar33" (subscript_expression "puVar32[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar33 = *(uint *)&local_bc[2].u1_;" (assignment_expression "uVar33 = *(uint *)&local_bc[2].u1_" identifier = (pointer_expression "*(uint *)&local_bc[2].u1_" * (cast_expression "(uint *)&local_bc[2].u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_bc[2].u1_" & (field_expression "local_bc[2].u1_" (subscript_expression "local_bc[2]" identifier [ number_literal ]) . field_identifier))))) ;) (expression_statement "puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4);" (assignment_expression "puVar32[0xf] = *(uint *)((int)&local_bc[2].u1_ + 4)" (subscript_expression "puVar32[0xf]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)&local_bc[2].u1_ + 4)" * (cast_expression "(uint *)((int)&local_bc[2].u1_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_bc[2].u1_ + 4)" ( (binary_expression "(int)&local_bc[2].u1_ + 4" (cast_expression "(int)&local_bc[2].u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_bc[2].u1_" & (field_expression "local_bc[2].u1_" (subscript_expression "local_bc[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar32[0xe] = uVar33;" (assignment_expression "puVar32[0xe] = uVar33" (subscript_expression "puVar32[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[-3] = local_f8;" (assignment_expression "puVar35[-3] = local_f8" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[-4] = local_fc;" (assignment_expression "puVar35[-4] = local_fc" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[-5] = iVar23;" (assignment_expression "puVar35[-5] = iVar23" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[-6] = (uint)pIVar25;" (assignment_expression "puVar35[-6] = (uint)pIVar25" (subscript_expression "puVar35[-6]" identifier [ number_literal ]) = (cast_expression "(uint)pIVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-7] = (uint)(pointer)local_d4;" (assignment_expression "puVar35[-7] = (uint)(pointer)local_d4" (subscript_expression "puVar35[-7]" identifier [ number_literal ]) = (cast_expression "(uint)(pointer)local_d4" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(pointer)local_d4" ( (type_descriptor "pointer" type_identifier) ) identifier))) ;) (expression_statement "puVar35[-8] = (uint)puVar32;" (assignment_expression "puVar35[-8] = (uint)puVar32" (subscript_expression "puVar35[-8]" identifier [ number_literal ]) = (cast_expression "(uint)puVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) comment (expression_statement "puVar35[-9] = 0x161203;" (assignment_expression "puVar35[-9] = 0x161203" (subscript_expression "puVar35[-9]" identifier [ number_literal ]) = number_literal) ;) (ERROR "std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,_int,___gnu_cxx::" (comma_expression "std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" identifier (ERROR "::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Input_section_info*" : : (binary_expression "__stable_sort_adaptive<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Input_section_info>_>,_gold" (binary_expression "Input_section_info>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Input_section_info*,_int,___gnu_cxx" (binary_expression "Input_section_info*,_int" identifier * (ERROR "," ,) identifier) , identifier) : :) (labeled_statement "__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4));" (binary_expression "Input_section_sorter>_>\n                    ((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4))" (binary_expression "Input_section_sorter>_" identifier > identifier) > (parenthesized_expression "((Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4))" ( (comma_expression "(Input_section_info *)puVar35[-8],(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4)" (cast_expression "(Input_section_info *)puVar35[-8]" ( (type_descriptor "Input_section_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-8]" identifier [ number_literal ])) , (comma_expression "(Input_section_info *)puVar35[-7],\n                     (Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4)" (cast_expression "(Input_section_info *)puVar35[-7]" ( (type_descriptor "Input_section_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-7]" identifier [ number_literal ])) , (comma_expression "(Input_section_info *)puVar35[-6],puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4)" (cast_expression "(Input_section_info *)puVar35[-6]" ( (type_descriptor "Input_section_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-6]" identifier [ number_literal ])) , (comma_expression "puVar35[-5],\n                     (_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4)" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) , (binary_expression "(_Iter_comp_iter<gold::Input_section_sorter>)\n                     *(Input_section_sorter *)(puVar35 + -4)" (parenthesized_expression "(_Iter_comp_iter<gold::Input_section_sorter>)" ( (ERROR "_Iter_comp_iter<gold::" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (binary_expression "Input_section_sorter>" identifier > identifier) )) * (cast_expression "(Input_section_sorter *)(puVar35 + -4)" ( (type_descriptor "Input_section_sorter *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -4)" ( (binary_expression "puVar35 + -4" identifier + number_literal) )))))))) ))) ;)) (goto_statement "goto LAB_00160b99;" goto statement_identifier ;) })) (if_statement "if (0 < iVar23) {\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }" if (parenthesized_expression "(0 < iVar23)" ( (binary_expression "0 < iVar23" number_literal < identifier) )) (compound_statement "{\n          iVar23 = iVar23 >> 6;\n          goto LAB_001609ce;\n        }" { (expression_statement "iVar23 = iVar23 >> 6;" (assignment_expression "iVar23 = iVar23 >> 6" identifier = (binary_expression "iVar23 >> 6" identifier >> number_literal)) ;) (goto_statement "goto LAB_001609ce;" goto statement_identifier ;) })) (expression_statement "local_100 = auStack_124[2];" (assignment_expression "local_100 = auStack_124[2]" identifier = (subscript_expression "auStack_124[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00160b72:\n        local_b4 = uVar39;" statement_identifier : (expression_statement "local_b4 = uVar39;" (assignment_expression "local_b4 = uVar39" identifier = identifier) ;)) (expression_statement "puVar35[-1] = local_f8;" (assignment_expression "puVar35[-1] = local_f8" (subscript_expression "puVar35[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[-2] = local_fc;" (assignment_expression "puVar35[-2] = local_fc" (subscript_expression "puVar35[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[-3] = (uint)(pointer)local_d4;" (assignment_expression "puVar35[-3] = (uint)(pointer)local_d4" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = (cast_expression "(uint)(pointer)local_d4" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(pointer)local_d4" ( (type_descriptor "pointer" type_identifier) ) identifier))) ;) (expression_statement "puVar35[-4] = (uint)puVar32;" (assignment_expression "puVar35[-4] = (uint)puVar32" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (cast_expression "(uint)puVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) comment (expression_statement "puVar35[-5] = 0x160b8a;" (assignment_expression "puVar35[-5] = 0x160b8a" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::" (comma_expression "std::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" identifier (ERROR "::\n        __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*" : : (binary_expression "__inplace_stable_sort<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Input_section_info>_>,___gnu_cxx" (binary_expression "Input_section_info>_" identifier > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2));" (binary_expression "Input_section_sorter>_>\n                  ((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2))" (binary_expression "Input_section_sorter>_" identifier > identifier) > (parenthesized_expression "((Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2))" ( (comma_expression "(Input_section_info *)puVar35[-4],(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2)" (cast_expression "(Input_section_info *)puVar35[-4]" ( (type_descriptor "Input_section_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) , (comma_expression "(Input_section_info *)puVar35[-3],\n                   (_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2)" (cast_expression "(Input_section_info *)puVar35[-3]" ( (type_descriptor "Input_section_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-3]" identifier [ number_literal ])) , (binary_expression "(_Iter_comp_iter<gold::Input_section_sorter>)\n                   *(Input_section_sorter *)(puVar35 + -2)" (parenthesized_expression "(_Iter_comp_iter<gold::Input_section_sorter>)" ( (ERROR "_Iter_comp_iter<gold::" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (binary_expression "Input_section_sorter>" identifier > identifier) )) * (cast_expression "(Input_section_sorter *)(puVar35 + -2)" ( (type_descriptor "Input_section_sorter *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -2)" ( (binary_expression "puVar35 + -2" identifier + number_literal) )))))) ))) ;)) (expression_statement "local_b4._0_4_ = (Relobj *)0x0;" (assignment_expression "local_b4._0_4_ = (Relobj *)0x0" (field_expression "local_b4._0_4_" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar25 = (Input_section *)0x0;" (assignment_expression "pIVar25 = (Input_section *)0x0" identifier = (cast_expression "(Input_section *)0x0" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00160b99:\n        pIVar36 = pIVar25;" statement_identifier : (expression_statement "pIVar36 = pIVar25;" (assignment_expression "pIVar36 = pIVar25" identifier = identifier) ;)) (if_statement "if ((Relobj *)local_b4 != (Relobj *)pIVar25) {\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }" if (parenthesized_expression "((Relobj *)local_b4 != (Relobj *)pIVar25)" ( (binary_expression "(Relobj *)local_b4 != (Relobj *)pIVar25" (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(Relobj *)pIVar25" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);\n        }" { (do_statement "do {\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          } while ((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_);" do (compound_statement "{\n            if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }\n            pIVar16 = pIVar36 + 2;\n            pIVar36 = (Input_section *)&pIVar16->u2_;\n          }" { (if_statement "if ((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_) {\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }" if (parenthesized_expression "((anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_)" ( (binary_expression "(anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_ != &pIVar36[1].u1_" (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)pIVar36[1].shndx_" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pIVar36[1].shndx_" (subscript_expression "pIVar36[1]" identifier [ number_literal ]) . field_identifier)) != (pointer_expression "&pIVar36[1].u1_" & (field_expression "pIVar36[1].u1_" (subscript_expression "pIVar36[1]" identifier [ number_literal ]) . field_identifier))) )) (compound_statement "{\n              puVar35[-4] = (uint)pIVar36[1].shndx_;\n              puVar35[-5] = 0x160bc1;\n              operator_delete((void *)puVar35[-4]);\n            }" { (expression_statement "puVar35[-4] = (uint)pIVar36[1].shndx_;" (assignment_expression "puVar35[-4] = (uint)pIVar36[1].shndx_" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (cast_expression "(uint)pIVar36[1].shndx_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIVar36[1].shndx_" (subscript_expression "pIVar36[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "puVar35[-5] = 0x160bc1;" (assignment_expression "puVar35[-5] = 0x160bc1" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar35[-4]);" (call_expression "operator_delete((void *)puVar35[-4])" identifier (argument_list "((void *)puVar35[-4])" ( (cast_expression "(void *)puVar35[-4]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) ))) ;) })) (expression_statement "pIVar16 = pIVar36 + 2;" (assignment_expression "pIVar16 = pIVar36 + 2" identifier = (binary_expression "pIVar36 + 2" identifier + number_literal)) ;) (expression_statement "pIVar36 = (Input_section *)&pIVar16->u2_;" (assignment_expression "pIVar36 = (Input_section *)&pIVar16->u2_" identifier = (cast_expression "(Input_section *)&pIVar16->u2_" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar16->u2_" & (field_expression "pIVar16->u2_" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "((Relobj *)local_b4 != (Relobj *)&pIVar16->u2_)" ( (binary_expression "(Relobj *)local_b4 != (Relobj *)&pIVar16->u2_" (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(Relobj *)&pIVar16->u2_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar16->u2_" & (field_expression "pIVar16->u2_" identifier -> field_identifier)))) )) ;) })) (expression_statement "puVar35[-3] = local_100;" (assignment_expression "puVar35[-3] = local_100" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[-4] = (uint)pIVar25;" (assignment_expression "puVar35[-4] = (uint)pIVar25" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (cast_expression "(uint)pIVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-5] = 0x160be4;" (assignment_expression "puVar35[-5] = 0x160be4" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3]);" (call_expression "operator_delete((void *)puVar35[-4],(nothrow_t *)puVar35[-3])" identifier (argument_list "((void *)puVar35[-4],(nothrow_t *)puVar35[-3])" ( (cast_expression "(void *)puVar35[-4]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) , (cast_expression "(nothrow_t *)puVar35[-3]" ( (type_descriptor "nothrow_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-3]" identifier [ number_literal ])) ))) ;) (expression_statement "uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);" (assignment_expression "uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4)" identifier = (call_expression "CONCAT44(local_b4._4_4_,(Relobj *)local_b4)" identifier (argument_list "(local_b4._4_4_,(Relobj *)local_b4)" ( (field_expression "local_b4._4_4_" identifier . field_identifier) , (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "puVar32 = (uint *)local_d8[-1];" (assignment_expression "puVar32 = (uint *)local_d8[-1]" identifier = (cast_expression "(uint *)local_d8[-1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_d8[-1]" identifier [ number_literal ]))) ;) (if_statement "if (puVar32 == (uint *)*local_d8) goto LAB_00160c00;" if (parenthesized_expression "(puVar32 == (uint *)*local_d8)" ( (binary_expression "puVar32 == (uint *)*local_d8" identifier == (cast_expression "(uint *)*local_d8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_d8" * identifier))) )) (goto_statement "goto LAB_00160c00;" goto statement_identifier ;)) })) (expression_statement "local_b4._0_4_ = (Relobj *)puVar32;" (assignment_expression "local_b4._0_4_ = (Relobj *)puVar32" (field_expression "local_b4._0_4_" identifier . field_identifier) = (cast_expression "(Relobj *)puVar32" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n        sis.shndx_ = *(uint *)(Relobj *)local_b4;\n        sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);\n        sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);\n        sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);\n        sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);\n        sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);\n        if (sis.p2align_ == 0) {\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }\n        else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }\n        puVar35[-3] = (uint)local_bc;\n        puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        puVar35[-5] = 0x160d3f;\n        Output_section::add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);\n        local_cc = (int)(pointer)local_d4 + local_c4;\n        local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);\n      } while ((Relobj *)*local_d8 != (Relobj *)local_b4);" do (compound_statement "{\n        sis.shndx_ = *(uint *)(Relobj *)local_b4;\n        sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);\n        sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);\n        sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);\n        sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);\n        sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);\n        if (sis.p2align_ == 0) {\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }\n        else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }\n        puVar35[-3] = (uint)local_bc;\n        puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */\n        puVar35[-5] = 0x160d3f;\n        Output_section::add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);\n        local_cc = (int)(pointer)local_d4 + local_c4;\n        local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n        uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n        local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);\n      }" { (expression_statement "sis.shndx_ = *(uint *)(Relobj *)local_b4;" (assignment_expression "sis.shndx_ = *(uint *)(Relobj *)local_b4" (field_expression "sis.shndx_" identifier . field_identifier) = (pointer_expression "*(uint *)(Relobj *)local_b4" * (cast_expression "(uint *)(Relobj *)local_b4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4);" (assignment_expression "sis.p2align_ = *(uint *)((int)(Relobj *)local_b4 + 4)" (field_expression "sis.p2align_" identifier . field_identifier) = (pointer_expression "*(uint *)((int)(Relobj *)local_b4 + 4)" * (cast_expression "(uint *)((int)(Relobj *)local_b4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(Relobj *)local_b4 + 4)" ( (binary_expression "(int)(Relobj *)local_b4 + 4" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8);" (assignment_expression "sis.u1_.data_size._0_4_ = *(uint *)((int)(Relobj *)local_b4 + 8)" (field_expression "sis.u1_.data_size._0_4_" (field_expression "sis.u1_.data_size" (field_expression "sis.u1_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(uint *)((int)(Relobj *)local_b4 + 8)" * (cast_expression "(uint *)((int)(Relobj *)local_b4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(Relobj *)local_b4 + 8)" ( (binary_expression "(int)(Relobj *)local_b4 + 8" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc);" (assignment_expression "sis.u1_.data_size._4_4_ = *(uint *)((int)(Relobj *)local_b4 + 0xc)" (field_expression "sis.u1_.data_size._4_4_" (field_expression "sis.u1_.data_size" (field_expression "sis.u1_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(uint *)((int)(Relobj *)local_b4 + 0xc)" * (cast_expression "(uint *)((int)(Relobj *)local_b4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(Relobj *)local_b4 + 0xc)" ( (binary_expression "(int)(Relobj *)local_b4 + 0xc" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10);" (assignment_expression "sis.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10)" (field_expression "sis.u2_" identifier . field_identifier) = (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)((int)(Relobj *)local_b4 + 0x10)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(Relobj *)local_b4 + 0x10)" ( (binary_expression "(int)(Relobj *)local_b4 + 0x10" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14);" (assignment_expression "sis.section_order_index_ = *(uint *)((int)(Relobj *)local_b4 + 0x14)" (field_expression "sis.section_order_index_" identifier . field_identifier) = (pointer_expression "*(uint *)((int)(Relobj *)local_b4 + 0x14)" * (cast_expression "(uint *)((int)(Relobj *)local_b4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(Relobj *)local_b4 + 0x14)" ( (binary_expression "(int)(Relobj *)local_b4 + 0x14" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (sis.p2align_ == 0) {\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }\n        else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }" if (parenthesized_expression "(sis.p2align_ == 0)" ( (binary_expression "sis.p2align_ == 0" (field_expression "sis.p2align_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n          if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */\n          puVar35[-5] = 0x160fd8;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 != 0) goto LAB_00160ffd;\nLAB_00160d10:\n          local_c4 = local_cc;\n          local_c0 = local_c8;\n        }" { (if_statement "if (0xfffffffb < *(uint *)(Relobj *)local_b4) {\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }" if (parenthesized_expression "(0xfffffffb < *(uint *)(Relobj *)local_b4)" ( (binary_expression "0xfffffffb < *(uint *)(Relobj *)local_b4" number_literal < (pointer_expression "*(uint *)(Relobj *)local_b4" * (cast_expression "(uint *)(Relobj *)local_b4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) )) (compound_statement "{\n            ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];\n            if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }\n            uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);\n            goto LAB_00160dde;\n          }" { (expression_statement "ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3];" (assignment_expression "ppuVar11 = (undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3]" identifier = (cast_expression "(undefined **)((sis.u2_.object)->super_Object)._vptr_Object[3]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "((sis.u2_.object)->super_Object)._vptr_Object[3]" (field_expression "((sis.u2_.object)->super_Object)._vptr_Object" (parenthesized_expression "((sis.u2_.object)->super_Object)" ( (field_expression "(sis.u2_.object)->super_Object" (parenthesized_expression "(sis.u2_.object)" ( (field_expression "sis.u2_.object" (field_expression "sis.u2_" identifier . field_identifier) . field_identifier) )) -> field_identifier) )) . field_identifier) [ number_literal ]))) ;) (if_statement "if (ppuVar11 != local_b8 + -0xc6e88) {\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }" if (parenthesized_expression "(ppuVar11 != local_b8 + -0xc6e88)" ( (binary_expression "ppuVar11 != local_b8 + -0xc6e88" identifier != (binary_expression "local_b8 + -0xc6e88" identifier + number_literal)) )) (compound_statement "{\n              puVar35[-4] = (uint)sis.u2_;\n              puVar35[-5] = 0x161066;\n              uVar39 = (*(code *)ppuVar11)();\n              goto LAB_00160fa4;\n            }" { (expression_statement "puVar35[-4] = (uint)sis.u2_;" (assignment_expression "puVar35[-4] = (uint)sis.u2_" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (cast_expression "(uint)sis.u2_" ( (type_descriptor "uint" type_identifier) ) (field_expression "sis.u2_" identifier . field_identifier))) ;) (expression_statement "puVar35[-5] = 0x161066;" (assignment_expression "puVar35[-5] = 0x161066" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar39 = (*(code *)ppuVar11)();" (assignment_expression "uVar39 = (*(code *)ppuVar11)()" identifier = (call_expression "(*(code *)ppuVar11)()" (parenthesized_expression "(*(code *)ppuVar11)" ( (pointer_expression "*(code *)ppuVar11" * (cast_expression "(code *)ppuVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00160fa4;" goto statement_identifier ;) })) (expression_statement "uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4);" (assignment_expression "uVar39 = *(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4)" identifier = (pointer_expression "*(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4)" * (cast_expression "(ulonglong *)((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4)" ( (binary_expression "(int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_ + 4" (cast_expression "(int)&(((Relobj *)sis.u2_.poris)->super_Object).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(((Relobj *)sis.u2_.poris)->super_Object).offset_" & (field_expression "(((Relobj *)sis.u2_.poris)->super_Object).offset_" (parenthesized_expression "(((Relobj *)sis.u2_.poris)->super_Object)" ( (field_expression "((Relobj *)sis.u2_.poris)->super_Object" (parenthesized_expression "((Relobj *)sis.u2_.poris)" ( (cast_expression "(Relobj *)sis.u2_.poris" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sis.u2_.poris" (field_expression "sis.u2_" identifier . field_identifier) . field_identifier)) )) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (goto_statement "goto LAB_00160dde;" goto statement_identifier ;) })) (expression_statement "puVar35[-4] = (uint)&sis;" (assignment_expression "puVar35[-4] = (uint)&sis" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (binary_expression "(uint)&sis" (parenthesized_expression "(uint)" ( identifier )) & identifier)) ;) (expression_statement "local_bc = &sis;" (assignment_expression "local_bc = &sis" identifier = (pointer_expression "&sis" & identifier)) ;) comment (expression_statement "puVar35[-5] = 0x160fd8;" (assignment_expression "puVar35[-5] = 0x160fd8" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "local_d4 = Output_section::" (assignment_expression "local_d4 = Output_section" identifier = identifier) : :) (labeled_statement "Input_section::data_size((Input_section *)puVar35[-4]);" statement_identifier : (ERROR ":" :) (expression_statement "data_size((Input_section *)puVar35[-4]);" (call_expression "data_size((Input_section *)puVar35[-4])" identifier (argument_list "((Input_section *)puVar35[-4])" ( (cast_expression "(Input_section *)puVar35[-4]" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) ))) ;)) (expression_statement "uVar14 = local_e4;" (assignment_expression "uVar14 = local_e4" identifier = identifier) ;) (if_statement "if (local_e4 != 0) goto LAB_00160ffd;" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00160ffd;" goto statement_identifier ;)) (labeled_statement "LAB_00160d10:\n          local_c4 = local_cc;" statement_identifier : (expression_statement "local_c4 = local_cc;" (assignment_expression "local_c4 = local_cc" identifier = identifier) ;)) (expression_statement "local_c0 = local_c8;" (assignment_expression "local_c0 = local_c8" identifier = identifier) ;) }) (else_clause "else {\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }" else (compound_statement "{\n          uVar33 = sis.p2align_ - 1 >> 5 & 1;\n          bVar29 = (byte)(sis.p2align_ - 1);\n          uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));\nLAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }\n          puVar35[-4] = (uint)&sis;\n          local_bc = &sis;\n          puVar35[-5] = 0x160e12;\n          local_d4 = Output_section::Input_section::data_size((Input_section *)puVar35[-4]);\n          uVar14 = local_e4;\n          if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }\n          ppuVar11 = local_b8;\n          lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);\n          local_c4 = (uint)lVar15 & -(int)uVar14;\n          local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));\n          if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }\n        }" { (expression_statement "uVar33 = sis.p2align_ - 1 >> 5 & 1;" (assignment_expression "uVar33 = sis.p2align_ - 1 >> 5 & 1" identifier = (binary_expression "sis.p2align_ - 1 >> 5 & 1" (binary_expression "sis.p2align_ - 1 >> 5" (binary_expression "sis.p2align_ - 1" (field_expression "sis.p2align_" identifier . field_identifier) - number_literal) >> number_literal) & number_literal)) ;) (expression_statement "bVar29 = (byte)(sis.p2align_ - 1);" (assignment_expression "bVar29 = (byte)(sis.p2align_ - 1)" identifier = (call_expression "(byte)(sis.p2align_ - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(sis.p2align_ - 1)" ( (binary_expression "sis.p2align_ - 1" (field_expression "sis.p2align_" identifier . field_identifier) - number_literal) )))) ;) (expression_statement "uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f));" (assignment_expression "uVar39 = CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f))" identifier = (call_expression "CONCAT44(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f))" identifier (argument_list "(uVar33 << (bVar29 & 0x1f),(uVar33 ^ 1) << (bVar29 & 0x1f))" ( (binary_expression "uVar33 << (bVar29 & 0x1f)" identifier << (parenthesized_expression "(bVar29 & 0x1f)" ( (binary_expression "bVar29 & 0x1f" identifier & number_literal) ))) , (binary_expression "(uVar33 ^ 1) << (bVar29 & 0x1f)" (parenthesized_expression "(uVar33 ^ 1)" ( (binary_expression "uVar33 ^ 1" identifier ^ number_literal) )) << (parenthesized_expression "(bVar29 & 0x1f)" ( (binary_expression "bVar29 & 0x1f" identifier & number_literal) ))) )))) ;) (labeled_statement "LAB_00160fa4:\n          if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }" statement_identifier : (if_statement "if (0xfffffffb < sis.shndx_) {\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }" if (parenthesized_expression "(0xfffffffb < sis.shndx_)" ( (binary_expression "0xfffffffb < sis.shndx_" number_literal < (field_expression "sis.shndx_" identifier . field_identifier)) )) (compound_statement "{\nLAB_00160dde:\n            aVar18 = sis.u2_;\n            if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }\n          }" { (labeled_statement "LAB_00160dde:\n            aVar18 = sis.u2_;" statement_identifier : (expression_statement "aVar18 = sis.u2_;" (assignment_expression "aVar18 = sis.u2_" identifier = (field_expression "sis.u2_" identifier . field_identifier)) ;)) (if_statement "if (((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0) {\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }" if (parenthesized_expression "(((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0)" ( (binary_expression "((uint)((sis.u2_.object)->super_Object).input_file_ & 2) == 0" (parenthesized_expression "((uint)((sis.u2_.object)->super_Object).input_file_ & 2)" ( (binary_expression "(uint)((sis.u2_.object)->super_Object).input_file_ & 2" (field_expression "(uint)((sis.u2_.object)->super_Object).input_file_" (call_expression "(uint)((sis.u2_.object)->super_Object)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((sis.u2_.object)->super_Object)" ( (field_expression "(sis.u2_.object)->super_Object" (parenthesized_expression "(sis.u2_.object)" ( (field_expression "sis.u2_.object" (field_expression "sis.u2_" identifier . field_identifier) . field_identifier) )) -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;\n              *(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;\n              p_Var6 = pp_Var5[0xe];\n              puVar35[-5] = 0x160ded;\n              (*p_Var6)();\n              ppuVar11 = local_b8;\n              if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }\n            }" { (expression_statement "pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object;" (assignment_expression "pp_Var5 = ((sis.u2_.object)->super_Object)._vptr_Object" identifier = (field_expression "((sis.u2_.object)->super_Object)._vptr_Object" (parenthesized_expression "((sis.u2_.object)->super_Object)" ( (field_expression "(sis.u2_.object)->super_Object" (parenthesized_expression "(sis.u2_.object)" ( (field_expression "sis.u2_.object" (field_expression "sis.u2_" identifier . field_identifier) . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_;" (assignment_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4) = sis.u2_" (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(puVar35 + -4)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -4)" ( (binary_expression "puVar35 + -4" identifier + number_literal) )))) = (field_expression "sis.u2_" identifier . field_identifier)) ;) (expression_statement "p_Var6 = pp_Var5[0xe];" (assignment_expression "p_Var6 = pp_Var5[0xe]" identifier = (subscript_expression "pp_Var5[0xe]" identifier [ number_literal ])) ;) (expression_statement "puVar35[-5] = 0x160ded;" (assignment_expression "puVar35[-5] = 0x160ded" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*p_Var6)();" (call_expression "(*p_Var6)()" (parenthesized_expression "(*p_Var6)" ( (pointer_expression "*p_Var6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar11 = local_b8;" (assignment_expression "ppuVar11 = local_b8" identifier = identifier) ;) (if_statement "if (((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0) {\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }" if (parenthesized_expression "(((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0)" ( (binary_expression "((uint)((aVar18.object)->super_Object).input_file_ & 2) == 0" (parenthesized_expression "((uint)((aVar18.object)->super_Object).input_file_ & 2)" ( (binary_expression "(uint)((aVar18.object)->super_Object).input_file_ & 2" (field_expression "(uint)((aVar18.object)->super_Object).input_file_" (call_expression "(uint)((aVar18.object)->super_Object)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((aVar18.object)->super_Object)" ( (field_expression "(aVar18.object)->super_Object" (parenthesized_expression "(aVar18.object)" ( (field_expression "aVar18.object" identifier . field_identifier) )) -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                puVar35[-2] = (uint)(local_b8 + -0x3dd6a);\n                puVar35[-3] = 0x163;\n                puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n                puVar35[-5] = 0x1614f8;\n                do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n              }" { (expression_statement "puVar35[-2] = (uint)(local_b8 + -0x3dd6a);" (assignment_expression "puVar35[-2] = (uint)(local_b8 + -0x3dd6a)" (subscript_expression "puVar35[-2]" identifier [ number_literal ]) = (call_expression "(uint)(local_b8 + -0x3dd6a)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 + -0x3dd6a)" ( (binary_expression "local_b8 + -0x3dd6a" identifier + number_literal) )))) ;) (expression_statement "puVar35[-3] = 0x163;" (assignment_expression "puVar35[-3] = 0x163" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar35[-4] = (uint)(ppuVar11 + -0x41c55);" (assignment_expression "puVar35[-4] = (uint)(ppuVar11 + -0x41c55)" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (call_expression "(uint)(ppuVar11 + -0x41c55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppuVar11 + -0x41c55)" ( (binary_expression "ppuVar11 + -0x41c55" identifier + number_literal) )))) ;) comment (expression_statement "puVar35[-5] = 0x1614f8;" (assignment_expression "puVar35[-5] = 0x1614f8" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);" (call_expression "do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2])" identifier (argument_list "((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2])" ( (cast_expression "(char *)puVar35[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) , (subscript_expression "puVar35[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar35[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-2]" identifier [ number_literal ])) ))) ;) })) })) }))) (expression_statement "puVar35[-4] = (uint)&sis;" (assignment_expression "puVar35[-4] = (uint)&sis" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (binary_expression "(uint)&sis" (parenthesized_expression "(uint)" ( identifier )) & identifier)) ;) (expression_statement "local_bc = &sis;" (assignment_expression "local_bc = &sis" identifier = (pointer_expression "&sis" & identifier)) ;) (expression_statement "puVar35[-5] = 0x160e12;" (assignment_expression "puVar35[-5] = 0x160e12" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "local_d4 = Output_section::" (assignment_expression "local_d4 = Output_section" identifier = identifier) : :) (labeled_statement "Input_section::data_size((Input_section *)puVar35[-4]);" statement_identifier : (ERROR ":" :) (expression_statement "data_size((Input_section *)puVar35[-4]);" (call_expression "data_size((Input_section *)puVar35[-4])" identifier (argument_list "((Input_section *)puVar35[-4])" ( (cast_expression "(Input_section *)puVar35[-4]" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) ))) ;)) (expression_statement "uVar14 = local_e4;" (assignment_expression "uVar14 = local_e4" identifier = identifier) ;) (if_statement "if (local_e4 == 0) {\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }\n          else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }" if (parenthesized_expression "(local_e4 == 0)" ( (binary_expression "local_e4 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar14 = uVar39;\n            if (uVar39 == 0) goto LAB_00160d10;\n          }" { (expression_statement "uVar14 = uVar39;" (assignment_expression "uVar14 = uVar39" identifier = identifier) ;) (if_statement "if (uVar39 == 0) goto LAB_00160d10;" if (parenthesized_expression "(uVar39 == 0)" ( (binary_expression "uVar39 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00160d10;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }" else (compound_statement "{\nLAB_00160ffd:\n            ppuVar11 = local_b8;\n            local_e4 = uVar14;\n            if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            *(ulonglong *)(puVar35 + -4) = uVar14;\n            puVar35[-5] = 0x161027;\n            sis.p2align_ = __ffsdi2();\n          }" { (labeled_statement "LAB_00160ffd:\n            ppuVar11 = local_b8;" statement_identifier : (expression_statement "ppuVar11 = local_b8;" (assignment_expression "ppuVar11 = local_b8" identifier = identifier) ;)) (expression_statement "local_e4 = uVar14;" (assignment_expression "local_e4 = uVar14" identifier = identifier) ;) (if_statement "if (local_f0 != 0) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }" if (parenthesized_expression "(local_f0 != 0)" ( (binary_expression "local_f0 != 0" identifier != number_literal) )) (compound_statement "{\n              puVar35[-2] = (uint)(local_b8 + -0x3dd6e);\n              puVar35[-3] = 0xedf;\n              puVar35[-4] = (uint)(ppuVar11 + -0x41c55);\n                    /* WARNING: Subroutine does not return */\n              puVar35[-5] = 0x1614d7;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }" { (expression_statement "puVar35[-2] = (uint)(local_b8 + -0x3dd6e);" (assignment_expression "puVar35[-2] = (uint)(local_b8 + -0x3dd6e)" (subscript_expression "puVar35[-2]" identifier [ number_literal ]) = (call_expression "(uint)(local_b8 + -0x3dd6e)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 + -0x3dd6e)" ( (binary_expression "local_b8 + -0x3dd6e" identifier + number_literal) )))) ;) (expression_statement "puVar35[-3] = 0xedf;" (assignment_expression "puVar35[-3] = 0xedf" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar35[-4] = (uint)(ppuVar11 + -0x41c55);" (assignment_expression "puVar35[-4] = (uint)(ppuVar11 + -0x41c55)" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (call_expression "(uint)(ppuVar11 + -0x41c55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppuVar11 + -0x41c55)" ( (binary_expression "ppuVar11 + -0x41c55" identifier + number_literal) )))) ;) comment (expression_statement "puVar35[-5] = 0x1614d7;" (assignment_expression "puVar35[-5] = 0x1614d7" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);" (call_expression "do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2])" identifier (argument_list "((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2])" ( (cast_expression "(char *)puVar35[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) , (subscript_expression "puVar35[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar35[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-2]" identifier [ number_literal ])) ))) ;) })) (expression_statement "*(ulonglong *)(puVar35 + -4) = uVar14;" (assignment_expression "*(ulonglong *)(puVar35 + -4) = uVar14" (pointer_expression "*(ulonglong *)(puVar35 + -4)" * (cast_expression "(ulonglong *)(puVar35 + -4)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -4)" ( (binary_expression "puVar35 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar35[-5] = 0x161027;" (assignment_expression "puVar35[-5] = 0x161027" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sis.p2align_ = __ffsdi2();" (assignment_expression "sis.p2align_ = __ffsdi2()" (field_expression "sis.p2align_" identifier . field_identifier) = (call_expression "__ffsdi2()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "ppuVar11 = local_b8;" (assignment_expression "ppuVar11 = local_b8" identifier = identifier) ;) (expression_statement "lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1);" (assignment_expression "lVar15 = uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1)" identifier = (binary_expression "uVar14 + CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1)" identifier + (call_expression "CONCAT44((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1)" identifier (argument_list "((local_c8 - 1) + (uint)(local_cc != 0),local_cc - 1)" ( (binary_expression "(local_c8 - 1) + (uint)(local_cc != 0)" (parenthesized_expression "(local_c8 - 1)" ( (binary_expression "local_c8 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_cc != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_cc != 0)" ( (binary_expression "local_cc != 0" identifier != number_literal) )))) , (binary_expression "local_cc - 1" identifier - number_literal) ))))) ;) (expression_statement "local_c4 = (uint)lVar15 & -(int)uVar14;" (assignment_expression "local_c4 = (uint)lVar15 & -(int)uVar14" identifier = (binary_expression "(uint)lVar15 & -(int)uVar14" (cast_expression "(uint)lVar15" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)uVar14" - (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0));" (assignment_expression "local_c0 = (uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0))" identifier = (binary_expression "(uint)((ulonglong)lVar15 >> 0x20) &\n                     -((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0))" (call_expression "(uint)((ulonglong)lVar15 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar15 >> 0x20)" ( (binary_expression "(ulonglong)lVar15 >> 0x20" (cast_expression "(ulonglong)lVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0))" - (parenthesized_expression "((int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0))" ( (binary_expression "(int)(uVar14 >> 0x20) + (uint)((int)uVar14 != 0)" (cast_expression "(int)(uVar14 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 >> 0x20)" ( (binary_expression "uVar14 >> 0x20" identifier >> number_literal) ))) + (call_expression "(uint)((int)uVar14 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar14 != 0)" ( (binary_expression "(int)uVar14 != 0" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) ))))) ;) (if_statement "if ((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)) {\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }" if (parenthesized_expression "((local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0))" ( (binary_expression "(local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)) &&\n             (fill->_M_string_length != 0)" (parenthesized_expression "(local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4))" ( (binary_expression "local_c8 < local_c0 || local_c8 - local_c0 < (uint)(local_cc < local_c4)" (binary_expression "local_c8 < local_c0" identifier < identifier) || (binary_expression "local_c8 - local_c0 < (uint)(local_cc < local_c4)" (binary_expression "local_c8 - local_c0" identifier - identifier) < (call_expression "(uint)(local_cc < local_c4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_cc < local_c4)" ( (binary_expression "local_cc < local_c4" identifier < identifier) ))))) )) && (parenthesized_expression "(fill->_M_string_length != 0)" ( (binary_expression "fill->_M_string_length != 0" (field_expression "fill->_M_string_length" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n            if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }\n            puVar35[-1] = local_c4 - local_cc;\n            puVar35[-2] = (uint)fill;\n            puVar35[-3] = (uint)this;\n            puVar35[-4] = (uint)&isi;\n            puVar35[-5] = 0x160ec0;\n            Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);\n            puVar35[-4] = 0x44;\n                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160ecf;\n            pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);\n            uVar31 = isi.input_section_.p2align_;\n            uVar33 = isi.input_section_.shndx_;\n            *(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;\n            *(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;\n            pOVar27->output_section_ = (Output_section *)0x0;\n            *(undefined4 *)&pOVar27->addralign_ = 0;\n            *(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;\n            *(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;\n            *(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;\n            (pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;\n            (pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);\n            pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);\n            puVar35[-1] = 0;\n            puVar35[-2] = uVar31 + uVar33;\n            puVar35[-3] = uVar33;\n            puVar35[-4] = (uint)(pOVar27 + 1);\n                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */\n            puVar35[-5] = 0x160f42;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();\n            puVar35[-3] = (uint)pOVar27;\n            puVar35[-4] = (uint)output_section;\n                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */\n            puVar35[-5] = 0x160f4d;\n            Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);\n            local_a4._0_4_ = pOVar27;\n            if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }\n            if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }\n          }" { (if_statement "if (local_c0 - local_c8 != (uint)(local_c4 < local_cc)) {\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }" if (parenthesized_expression "(local_c0 - local_c8 != (uint)(local_c4 < local_cc))" ( (binary_expression "local_c0 - local_c8 != (uint)(local_c4 < local_cc)" (binary_expression "local_c0 - local_c8" identifier - identifier) != (call_expression "(uint)(local_c4 < local_cc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_c4 < local_cc)" ( (binary_expression "local_c4 < local_cc" identifier < identifier) )))) )) (compound_statement "{\n              puVar35[-2] = (uint)(local_b8 + -0x3dd18);\n              puVar35[-3] = 0xc0;\n              puVar35[-4] = (int)ppuVar11 + -0x107be7;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */\n              puVar35[-5] = 0x1614b6;\n              do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);\n            }" { (expression_statement "puVar35[-2] = (uint)(local_b8 + -0x3dd18);" (assignment_expression "puVar35[-2] = (uint)(local_b8 + -0x3dd18)" (subscript_expression "puVar35[-2]" identifier [ number_literal ]) = (call_expression "(uint)(local_b8 + -0x3dd18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 + -0x3dd18)" ( (binary_expression "local_b8 + -0x3dd18" identifier + number_literal) )))) ;) (expression_statement "puVar35[-3] = 0xc0;" (assignment_expression "puVar35[-3] = 0xc0" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar35[-4] = (int)ppuVar11 + -0x107be7;" (assignment_expression "puVar35[-4] = (int)ppuVar11 + -0x107be7" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (binary_expression "(int)ppuVar11 + -0x107be7" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "puVar35[-5] = 0x1614b6;" (assignment_expression "puVar35[-5] = 0x1614b6" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2]);" (call_expression "do_gold_unreachable((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2])" identifier (argument_list "((char *)puVar35[-4],puVar35[-3],(char *)puVar35[-2])" ( (cast_expression "(char *)puVar35[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) , (subscript_expression "puVar35[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar35[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-2]" identifier [ number_literal ])) ))) ;) })) (expression_statement "puVar35[-1] = local_c4 - local_cc;" (assignment_expression "puVar35[-1] = local_c4 - local_cc" (subscript_expression "puVar35[-1]" identifier [ number_literal ]) = (binary_expression "local_c4 - local_cc" identifier - identifier)) ;) (expression_statement "puVar35[-2] = (uint)fill;" (assignment_expression "puVar35[-2] = (uint)fill" (subscript_expression "puVar35[-2]" identifier [ number_literal ]) = (cast_expression "(uint)fill" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-3] = (uint)this;" (assignment_expression "puVar35[-3] = (uint)this" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = (cast_expression "(uint)this" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-4] = (uint)&isi;" (assignment_expression "puVar35[-4] = (uint)&isi" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (binary_expression "(uint)&isi" (parenthesized_expression "(uint)" ( identifier )) & identifier)) ;) (expression_statement "puVar35[-5] = 0x160ec0;" (assignment_expression "puVar35[-5] = 0x160ec0" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "Output_section_element::get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);" statement_identifier : (ERROR ":" :) (expression_statement "get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1]);" (call_expression "get_fill_string\n                      ((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1])" identifier (argument_list "((string *)puVar35[-4],(Output_section_element *)puVar35[-3],\n                       (string *)puVar35[-2],puVar35[-1])" ( (cast_expression "(string *)puVar35[-4]" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) , (cast_expression "(Output_section_element *)puVar35[-3]" ( (type_descriptor "Output_section_element *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-3]" identifier [ number_literal ])) , (cast_expression "(string *)puVar35[-2]" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-2]" identifier [ number_literal ])) , (subscript_expression "puVar35[-1]" identifier [ number_literal ]) ))) ;)) (expression_statement "puVar35[-4] = 0x44;" (assignment_expression "puVar35[-4] = 0x44" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = number_literal) ;) comment (expression_statement "puVar35[-5] = 0x160ecf;" (assignment_expression "puVar35[-5] = 0x160ecf" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pOVar27 = (Output_section_data *)operator_new(puVar35[-4]);" (assignment_expression "pOVar27 = (Output_section_data *)operator_new(puVar35[-4])" identifier = (cast_expression "(Output_section_data *)operator_new(puVar35[-4])" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(puVar35[-4])" identifier (argument_list "(puVar35[-4])" ( (subscript_expression "puVar35[-4]" identifier [ number_literal ]) ))))) ;) (expression_statement "uVar31 = isi.input_section_.p2align_;" (assignment_expression "uVar31 = isi.input_section_.p2align_" identifier = (field_expression "isi.input_section_.p2align_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "uVar33 = isi.input_section_.shndx_;" (assignment_expression "uVar33 = isi.input_section_.shndx_" identifier = (field_expression "isi.input_section_.shndx_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar27->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar27->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar27->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar27->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar27->super_Output_data).address_" & (field_expression "(pOVar27->super_Output_data).address_" (parenthesized_expression "(pOVar27->super_Output_data)" ( (field_expression "pOVar27->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar27->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar27->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar27->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar27->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar27->super_Output_data).address_" & (field_expression "(pOVar27->super_Output_data).address_" (parenthesized_expression "(pOVar27->super_Output_data)" ( (field_expression "pOVar27->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_;" (assignment_expression "*(uint *)&(pOVar27->super_Output_data).data_size_ = isi.input_section_.p2align_" (pointer_expression "*(uint *)&(pOVar27->super_Output_data).data_size_" * (cast_expression "(uint *)&(pOVar27->super_Output_data).data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar27->super_Output_data).data_size_" & (field_expression "(pOVar27->super_Output_data).data_size_" (parenthesized_expression "(pOVar27->super_Output_data)" ( (field_expression "pOVar27->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = (field_expression "isi.input_section_.p2align_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pOVar27->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar27->output_section_ = (Output_section *)0x0" (field_expression "pOVar27->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar27->addralign_ = 0;" (assignment_expression "*(undefined4 *)&pOVar27->addralign_ = 0" (pointer_expression "*(undefined4 *)&pOVar27->addralign_" * (cast_expression "(undefined4 *)&pOVar27->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar27->addralign_" & (field_expression "pOVar27->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar27->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar27->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar27->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar27->addralign_ + 4)" ( (binary_expression "(int)&pOVar27->addralign_ + 4" (cast_expression "(int)&pOVar27->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar27->addralign_" & (field_expression "pOVar27->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar27->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar27->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar27->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar27->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar27->super_Output_data).data_size_" & (field_expression "(pOVar27->super_Output_data).data_size_" (parenthesized_expression "(pOVar27->super_Output_data)" ( (field_expression "pOVar27->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar27->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar27->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar27->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar27->super_Output_data).offset_" & (field_expression "(pOVar27->super_Output_data).offset_" (parenthesized_expression "(pOVar27->super_Output_data)" ( (field_expression "pOVar27->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar27->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar27->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar27->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar27->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar27->super_Output_data).offset_" & (field_expression "(pOVar27->super_Output_data).offset_" (parenthesized_expression "(pOVar27->super_Output_data)" ( (field_expression "pOVar27->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10;" (assignment_expression "(pOVar27->super_Output_data).field_0x1c =\n                 (pOVar27->super_Output_data).field_0x1c & 0xe0 | 10" (field_expression "(pOVar27->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar27->super_Output_data)" ( (field_expression "pOVar27->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pOVar27->super_Output_data).field_0x1c & 0xe0 | 10" (binary_expression "(pOVar27->super_Output_data).field_0x1c & 0xe0" (field_expression "(pOVar27->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar27->super_Output_data)" ( (field_expression "pOVar27->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) | number_literal)) ;) (expression_statement "(pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8);" (assignment_expression "(pOVar27->super_Output_data)._vptr_Output_data =\n                 (_func_int_varargs **)((int)local_dc + 8)" (field_expression "(pOVar27->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar27->super_Output_data)" ( (field_expression "pOVar27->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)((int)local_dc + 8)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_dc + 8)" ( (binary_expression "(int)local_dc + 8" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4);" (assignment_expression "pOVar27[1].super_Output_data._vptr_Output_data =\n                 (_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4)" (field_expression "pOVar27[1].super_Output_data._vptr_Output_data" (field_expression "pOVar27[1].super_Output_data" (subscript_expression "pOVar27[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)((int)&pOVar27[1].super_Output_data.address_ + 4)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar27[1].super_Output_data.address_ + 4)" ( (binary_expression "(int)&pOVar27[1].super_Output_data.address_ + 4" (cast_expression "(int)&pOVar27[1].super_Output_data.address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar27[1].super_Output_data.address_" & (field_expression "pOVar27[1].super_Output_data.address_" (field_expression "pOVar27[1].super_Output_data" (subscript_expression "pOVar27[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) ;) (expression_statement "puVar35[-1] = 0;" (assignment_expression "puVar35[-1] = 0" (subscript_expression "puVar35[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar35[-2] = uVar31 + uVar33;" (assignment_expression "puVar35[-2] = uVar31 + uVar33" (subscript_expression "puVar35[-2]" identifier [ number_literal ]) = (binary_expression "uVar31 + uVar33" identifier + identifier)) ;) (expression_statement "puVar35[-3] = uVar33;" (assignment_expression "puVar35[-3] = uVar33" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[-4] = (uint)(pOVar27 + 1);" (assignment_expression "puVar35[-4] = (uint)(pOVar27 + 1)" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (call_expression "(uint)(pOVar27 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar27 + 1)" ( (binary_expression "pOVar27 + 1" identifier + number_literal) )))) ;) comment (expression_statement "puVar35[-5] = 0x160f42;" (assignment_expression "puVar35[-5] = 0x160f42" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>();" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char*>();" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*>()" * > ( )) ;)) (expression_statement "puVar35[-3] = (uint)pOVar27;" (assignment_expression "puVar35[-3] = (uint)pOVar27" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = (cast_expression "(uint)pOVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-4] = (uint)output_section;" (assignment_expression "puVar35[-4] = (uint)output_section" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (cast_expression "(uint)output_section" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) comment (expression_statement "puVar35[-5] = 0x160f4d;" (assignment_expression "puVar35[-5] = 0x160f4d" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "Output_section::add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3]);" (call_expression "add_output_section_data\n                      ((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3])" identifier (argument_list "((Output_section *)puVar35[-4],(Output_section_data *)puVar35[-3])" ( (cast_expression "(Output_section *)puVar35[-4]" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) , (cast_expression "(Output_section_data *)puVar35[-3]" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-3]" identifier [ number_literal ])) ))) ;)) (expression_statement "local_a4._0_4_ = pOVar27;" (assignment_expression "local_a4._0_4_ = pOVar27" (field_expression "local_a4._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (layout->record_output_section_data_from_script_ != false) {\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }" if (parenthesized_expression "(layout->record_output_section_data_from_script_ != false)" ( (binary_expression "layout->record_output_section_data_from_script_ != false" (field_expression "layout->record_output_section_data_from_script_" identifier -> field_identifier) != false) )) (compound_statement "{\n              ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;\n              if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }\n            }" { (expression_statement "ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish;" (field_expression "ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl._M_finish" (field_expression "ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                         ._M_impl" (binary_expression "ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold::Output_section_data*,_std" (assignment_expression "ppOVar12 = (layout->script_output_section_data_list_).\n                         super__Vector_base<gold" identifier = (binary_expression "(layout->script_output_section_data_list_).\n                         super__Vector_base<gold" (field_expression "(layout->script_output_section_data_list_).\n                         super__Vector_base" (parenthesized_expression "(layout->script_output_section_data_list_)" ( (field_expression "layout->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage) {\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }\n              else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }" if (parenthesized_expression "(ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage)" ( (field_expression "ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_end_of_storage" (field_expression "ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl" (binary_expression "ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std" (binary_expression "ppOVar12 ==\n                  (layout->script_output_section_data_list_).\n                  super__Vector_base<gold" identifier == (binary_expression "(layout->script_output_section_data_list_).\n                  super__Vector_base<gold" (field_expression "(layout->script_output_section_data_list_).\n                  super__Vector_base" (parenthesized_expression "(layout->script_output_section_data_list_)" ( (field_expression "layout->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n                puVar35[-2] = (uint)local_a4;\n                puVar35[-3] = (uint)ppOVar12;\n                puVar35[-4] = (uint)&layout->script_output_section_data_list_;\n                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */\n                puVar35[-5] = 0x161091;\n                std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);\n              }" { (expression_statement "puVar35[-2] = (uint)local_a4;" (assignment_expression "puVar35[-2] = (uint)local_a4" (subscript_expression "puVar35[-2]" identifier [ number_literal ]) = (cast_expression "(uint)local_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-3] = (uint)ppOVar12;" (assignment_expression "puVar35[-3] = (uint)ppOVar12" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = (cast_expression "(uint)ppOVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-4] = (uint)&layout->script_output_section_data_list_;" (assignment_expression "puVar35[-4] = (uint)&layout->script_output_section_data_list_" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (binary_expression "(uint)&layout->script_output_section_data_list_" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "layout->script_output_section_data_list_" identifier -> field_identifier))) ;) comment (expression_statement "puVar35[-5] = 0x161091;" (assignment_expression "puVar35[-5] = 0x161091" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ::_M_realloc_insert<gold::" (comma_expression "std::vector<gold::Output_section_data*,_std" identifier (ERROR "::vector<gold::Output_section_data*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Output_section_data*>_>\n                ::_M_realloc_insert<gold" (binary_expression "Output_section_data*>_>\n                ::_M_realloc_insert" (binary_expression "Output_section_data*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]);" (binary_expression "Output_section_data*_const&>\n                          ((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2])" (binary_expression "Output_section_data*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "((vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2])" ( (parenthesized_expression "(vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2])" ( (ERROR "vector<gold::Output_section_data*,_std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (type_descriptor "Output_section_data*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Output_section_data*>_>\n                            *)puVar35[-4],(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]" (binary_expression "Output_section_data*>_>\n                            *)puVar35[-4]" (binary_expression "Output_section_data*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*)puVar35[-4]" * (ERROR ")" )) (subscript_expression "puVar35[-4]" identifier [ number_literal ]))) , (comma_expression "(Output_section_data **)puVar35[-3],\n                           (Output_section_data **)puVar35[-2]" (cast_expression "(Output_section_data **)puVar35[-3]" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar35[-3]" identifier [ number_literal ])) , (cast_expression "(Output_section_data **)puVar35[-2]" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar35[-2]" identifier [ number_literal ])))) )) ))) ;) }) (else_clause "else {\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }" else (compound_statement "{\n                *ppOVar12 = pOVar27;\n                (layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;\n              }" { (expression_statement "*ppOVar12 = pOVar27;" (assignment_expression "*ppOVar12 = pOVar27" (pointer_expression "*ppOVar12" * identifier) = identifier) ;) (expression_statement "(layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1;" (assignment_expression "(layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish = ppOVar12 + 1" (field_expression "(layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl._M_finish" (field_expression "(layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                ._M_impl" (binary_expression "(layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "(layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "(layout->script_output_section_data_list_).\n                super__Vector_base<gold::Output_section_data*,_std" (binary_expression "(layout->script_output_section_data_list_).\n                super__Vector_base<gold" (field_expression "(layout->script_output_section_data_list_).\n                super__Vector_base" (parenthesized_expression "(layout->script_output_section_data_list_)" ( (field_expression "layout->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "ppOVar12 + 1" identifier + number_literal)) ;) }))) })) (if_statement "if ((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_) {\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }" if (parenthesized_expression "((anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_)" ( (binary_expression "(anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_ !=\n                &isi.input_section_.u1_" (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)isi.input_section_.shndx_" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "isi.input_section_.shndx_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier)) != (pointer_expression "&isi.input_section_.u1_" & (field_expression "isi.input_section_.u1_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier))) )) (compound_statement "{\n              puVar35[-4] = isi.input_section_.shndx_;\n              puVar35[-5] = 0x160f83;\n              operator_delete((void *)puVar35[-4]);\n            }" { (expression_statement "puVar35[-4] = isi.input_section_.shndx_;" (assignment_expression "puVar35[-4] = isi.input_section_.shndx_" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (field_expression "isi.input_section_.shndx_" (field_expression "isi.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar35[-5] = 0x160f83;" (assignment_expression "puVar35[-5] = 0x160f83" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar35[-4]);" (call_expression "operator_delete((void *)puVar35[-4])" identifier (argument_list "((void *)puVar35[-4])" ( (cast_expression "(void *)puVar35[-4]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) ))) ;) })) })) }))) (expression_statement "puVar35[-3] = (uint)local_bc;" (assignment_expression "puVar35[-3] = (uint)local_bc" (subscript_expression "puVar35[-3]" identifier [ number_literal ]) = (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-4] = (uint)output_section;" (assignment_expression "puVar35[-4] = (uint)output_section" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (cast_expression "(uint)output_section" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) comment (expression_statement "puVar35[-5] = 0x160d3f;" (assignment_expression "puVar35[-5] = 0x160d3f" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "Output_section::add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);" statement_identifier : (ERROR ":" :) (expression_statement "add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3]);" (call_expression "add_script_input_section\n                  ((Output_section *)puVar35[-4],(Input_section *)puVar35[-3])" identifier (argument_list "((Output_section *)puVar35[-4],(Input_section *)puVar35[-3])" ( (cast_expression "(Output_section *)puVar35[-4]" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) , (cast_expression "(Input_section *)puVar35[-3]" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-3]" identifier [ number_literal ])) ))) ;)) (expression_statement "local_cc = (int)(pointer)local_d4 + local_c4;" (assignment_expression "local_cc = (int)(pointer)local_d4 + local_c4" identifier = (binary_expression "(int)(pointer)local_d4 + local_c4" (cast_expression "(int)(pointer)local_d4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(pointer)local_d4" ( (type_descriptor "pointer" type_identifier) ) identifier)) + identifier)) ;) (expression_statement "local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);" (assignment_expression "local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40)" (field_expression "local_b4._0_4_" identifier . field_identifier) = (cast_expression "(Relobj *)((int)(Relobj *)local_b4 + 0x40)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(Relobj *)local_b4 + 0x40)" ( (binary_expression "(int)(Relobj *)local_b4 + 0x40" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) ;) (expression_statement "uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);" (assignment_expression "uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4)" identifier = (call_expression "CONCAT44(local_b4._4_4_,(Relobj *)local_b4)" identifier (argument_list "(local_b4._4_4_,(Relobj *)local_b4)" ( (field_expression "local_b4._4_4_" identifier . field_identifier) , (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4);" (assignment_expression "local_c8 = local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4)" identifier = (binary_expression "local_d4._4_4_ + local_c0 + (uint)CARRY4((uint)(pointer)local_d4,local_c4)" (binary_expression "local_d4._4_4_ + local_c0" (field_expression "local_d4._4_4_" identifier . field_identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)(pointer)local_d4,local_c4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)(pointer)local_d4,local_c4)" identifier (argument_list "((uint)(pointer)local_d4,local_c4)" ( (cast_expression "(uint)(pointer)local_d4" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(pointer)local_d4" ( (type_descriptor "pointer" type_identifier) ) identifier)) , identifier )))))) ;) }) while (parenthesized_expression "((Relobj *)*local_d8 != (Relobj *)local_b4)" ( (binary_expression "(Relobj *)*local_d8 != (Relobj *)local_b4" (cast_expression "(Relobj *)*local_d8" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_d8" * identifier)) != (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) })) (labeled_statement "LAB_00160c00:\n    local_ec = local_ec + 1;" statement_identifier : (expression_statement "local_ec = local_ec + 1;" (assignment_expression "local_ec = local_ec + 1" identifier = (binary_expression "local_ec + 1" identifier + number_literal)) ;)) (expression_statement "local_d8 = local_d8 + 3;" (assignment_expression "local_d8 = local_d8 + 3" identifier = (binary_expression "local_d8 + 3" identifier + number_literal)) ;) (if_statement "if (local_ec == local_f4) {\n      if (((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||\n         (output_section->type_ != 8)) {\n        *(uint *)dot_value = local_cc;\n        *(uint *)((int)dot_value + 4) = local_c8;\n      }\n      else {\n        local_c8 = *(uint *)((int)dot_value + 4);\n        local_cc = (uint)*dot_value;\n      }\n      *(uint *)&this->final_dot_value_ = local_cc;\n      *(uint *)((int)&this->final_dot_value_ + 4) = local_c8;\n      this->final_dot_section_ = *dot_section;\n      piVar22 = local_114;\n      if (local_110 != local_114) {\n        do {\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        } while (piVar22 != local_110);\n      }\n      local_b4 = uVar39;\n      puVar35[-4] = (uint)local_114;\n      puVar35[-5] = 0x160cfa;\n      operator_delete((void *)puVar35[-4]);\n      return;\n    }" if (parenthesized_expression "(local_ec == local_f4)" ( (binary_expression "local_ec == local_f4" identifier == identifier) )) (compound_statement "{\n      if (((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||\n         (output_section->type_ != 8)) {\n        *(uint *)dot_value = local_cc;\n        *(uint *)((int)dot_value + 4) = local_c8;\n      }\n      else {\n        local_c8 = *(uint *)((int)dot_value + 4);\n        local_cc = (uint)*dot_value;\n      }\n      *(uint *)&this->final_dot_value_ = local_cc;\n      *(uint *)((int)&this->final_dot_value_ + 4) = local_c8;\n      this->final_dot_section_ = *dot_section;\n      piVar22 = local_114;\n      if (local_110 != local_114) {\n        do {\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        } while (piVar22 != local_110);\n      }\n      local_b4 = uVar39;\n      puVar35[-4] = (uint)local_114;\n      puVar35[-5] = 0x160cfa;\n      operator_delete((void *)puVar35[-4]);\n      return;\n    }" { (if_statement "if (((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||\n         (output_section->type_ != 8)) {\n        *(uint *)dot_value = local_cc;\n        *(uint *)((int)dot_value + 4) = local_c8;\n      }\n      else {\n        local_c8 = *(uint *)((int)dot_value + 4);\n        local_cc = (uint)*dot_value;\n      }" if (parenthesized_expression "(((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||\n         (output_section->type_ != 8))" ( (binary_expression "((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)) ||\n         (output_section->type_ != 8)" (parenthesized_expression "((output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0))" ( (binary_expression "(output_section == (Output_section *)0x0) || ((output_section->flags_ & 0x400) == 0)" (parenthesized_expression "(output_section == (Output_section *)0x0)" ( (binary_expression "output_section == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((output_section->flags_ & 0x400) == 0)" ( (binary_expression "(output_section->flags_ & 0x400) == 0" (parenthesized_expression "(output_section->flags_ & 0x400)" ( (binary_expression "output_section->flags_ & 0x400" (field_expression "output_section->flags_" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(output_section->type_ != 8)" ( (binary_expression "output_section->type_ != 8" (field_expression "output_section->type_" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n        *(uint *)dot_value = local_cc;\n        *(uint *)((int)dot_value + 4) = local_c8;\n      }" { (expression_statement "*(uint *)dot_value = local_cc;" (assignment_expression "*(uint *)dot_value = local_cc" (pointer_expression "*(uint *)dot_value" * (cast_expression "(uint *)dot_value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(uint *)((int)dot_value + 4) = local_c8;" (assignment_expression "*(uint *)((int)dot_value + 4) = local_c8" (pointer_expression "*(uint *)((int)dot_value + 4)" * (cast_expression "(uint *)((int)dot_value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        local_c8 = *(uint *)((int)dot_value + 4);\n        local_cc = (uint)*dot_value;\n      }" else (compound_statement "{\n        local_c8 = *(uint *)((int)dot_value + 4);\n        local_cc = (uint)*dot_value;\n      }" { (expression_statement "local_c8 = *(uint *)((int)dot_value + 4);" (assignment_expression "local_c8 = *(uint *)((int)dot_value + 4)" identifier = (pointer_expression "*(uint *)((int)dot_value + 4)" * (cast_expression "(uint *)((int)dot_value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_cc = (uint)*dot_value;" (assignment_expression "local_cc = (uint)*dot_value" identifier = (binary_expression "(uint)*dot_value" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }))) (expression_statement "*(uint *)&this->final_dot_value_ = local_cc;" (assignment_expression "*(uint *)&this->final_dot_value_ = local_cc" (pointer_expression "*(uint *)&this->final_dot_value_" * (cast_expression "(uint *)&this->final_dot_value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->final_dot_value_" & (field_expression "this->final_dot_value_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&this->final_dot_value_ + 4) = local_c8;" (assignment_expression "*(uint *)((int)&this->final_dot_value_ + 4) = local_c8" (pointer_expression "*(uint *)((int)&this->final_dot_value_ + 4)" * (cast_expression "(uint *)((int)&this->final_dot_value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->final_dot_value_ + 4)" ( (binary_expression "(int)&this->final_dot_value_ + 4" (cast_expression "(int)&this->final_dot_value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->final_dot_value_" & (field_expression "this->final_dot_value_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "this->final_dot_section_ = *dot_section;" (assignment_expression "this->final_dot_section_ = *dot_section" (field_expression "this->final_dot_section_" identifier -> field_identifier) = (pointer_expression "*dot_section" * identifier)) ;) (expression_statement "piVar22 = local_114;" (assignment_expression "piVar22 = local_114" identifier = identifier) ;) (if_statement "if (local_110 != local_114) {\n        do {\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        } while (piVar22 != local_110);\n      }" if (parenthesized_expression "(local_110 != local_114)" ( (binary_expression "local_110 != local_114" identifier != identifier) )) (compound_statement "{\n        do {\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        } while (piVar22 != local_110);\n      }" { (do_statement "do {\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        } while (piVar22 != local_110);" do (compound_statement "{\n          local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);\n          iVar23 = piVar22[1];\n          iVar26 = *piVar22;\n          if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }\n          if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }\n          piVar22 = piVar22 + 3;\n        }" { (expression_statement "local_b4._4_4_ = (undefined4)(uVar39 >> 0x20);" (assignment_expression "local_b4._4_4_ = (undefined4)(uVar39 >> 0x20)" (field_expression "local_b4._4_4_" identifier . field_identifier) = (call_expression "(undefined4)(uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(uVar39 >> 0x20)" ( (binary_expression "uVar39 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "iVar23 = piVar22[1];" (assignment_expression "iVar23 = piVar22[1]" identifier = (subscript_expression "piVar22[1]" identifier [ number_literal ])) ;) (expression_statement "iVar26 = *piVar22;" (assignment_expression "iVar26 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (if_statement "if (iVar23 != iVar26) {\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }" if (parenthesized_expression "(iVar23 != iVar26)" ( (binary_expression "iVar23 != iVar26" identifier != identifier) )) (compound_statement "{\n            local_b4._0_4_ = (Relobj *)iVar26;\n            do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);\n            iVar26 = *piVar22;\n          }" { (expression_statement "local_b4._0_4_ = (Relobj *)iVar26;" (assignment_expression "local_b4._0_4_ = (Relobj *)iVar26" (field_expression "local_b4._0_4_" identifier . field_identifier) = (cast_expression "(Relobj *)iVar26" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            } while ((Relobj *)iVar23 != (Relobj *)local_b4);" do (compound_statement "{\n              if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }\n              local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);\n              uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);\n            }" { (if_statement "if (*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20) {\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }" if (parenthesized_expression "(*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20)" ( (binary_expression "*(int *)((int)(Relobj *)local_b4 + 0x18) != (int)(Relobj *)local_b4 + 0x20" (pointer_expression "*(int *)((int)(Relobj *)local_b4 + 0x18)" * (cast_expression "(int *)((int)(Relobj *)local_b4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(Relobj *)local_b4 + 0x18)" ( (binary_expression "(int)(Relobj *)local_b4 + 0x18" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != (binary_expression "(int)(Relobj *)local_b4 + 0x20" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) )) (compound_statement "{\n                puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);\n                puVar35[-5] = 0x160caf;\n                operator_delete((void *)puVar35[-4]);\n              }" { (expression_statement "puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18);" (assignment_expression "puVar35[-4] = *(int *)((int)(Relobj *)local_b4 + 0x18)" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (pointer_expression "*(int *)((int)(Relobj *)local_b4 + 0x18)" * (cast_expression "(int *)((int)(Relobj *)local_b4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(Relobj *)local_b4 + 0x18)" ( (binary_expression "(int)(Relobj *)local_b4 + 0x18" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "puVar35[-5] = 0x160caf;" (assignment_expression "puVar35[-5] = 0x160caf" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar35[-4]);" (call_expression "operator_delete((void *)puVar35[-4])" identifier (argument_list "((void *)puVar35[-4])" ( (cast_expression "(void *)puVar35[-4]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) ))) ;) })) (expression_statement "local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40);" (assignment_expression "local_b4._0_4_ = (Relobj *)((int)(Relobj *)local_b4 + 0x40)" (field_expression "local_b4._0_4_" identifier . field_identifier) = (cast_expression "(Relobj *)((int)(Relobj *)local_b4 + 0x40)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(Relobj *)local_b4 + 0x40)" ( (binary_expression "(int)(Relobj *)local_b4 + 0x40" (cast_expression "(int)(Relobj *)local_b4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) ;) (expression_statement "uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4);" (assignment_expression "uVar39 = CONCAT44(local_b4._4_4_,(Relobj *)local_b4)" identifier = (call_expression "CONCAT44(local_b4._4_4_,(Relobj *)local_b4)" identifier (argument_list "(local_b4._4_4_,(Relobj *)local_b4)" ( (field_expression "local_b4._4_4_" identifier . field_identifier) , (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }) while (parenthesized_expression "((Relobj *)iVar23 != (Relobj *)local_b4)" ( (binary_expression "(Relobj *)iVar23 != (Relobj *)local_b4" (cast_expression "(Relobj *)iVar23" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(Relobj *)local_b4" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar26 = *piVar22;" (assignment_expression "iVar26 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) })) (if_statement "if (iVar26 != 0) {\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }" if (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) (compound_statement "{\n            local_b4 = uVar39;\n            puVar35[-4] = iVar26;\n            puVar35[-5] = 0x160cd8;\n            operator_delete((void *)puVar35[-4]);\n            uVar39 = local_b4;\n          }" { (expression_statement "local_b4 = uVar39;" (assignment_expression "local_b4 = uVar39" identifier = identifier) ;) (expression_statement "puVar35[-4] = iVar26;" (assignment_expression "puVar35[-4] = iVar26" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[-5] = 0x160cd8;" (assignment_expression "puVar35[-5] = 0x160cd8" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar35[-4]);" (call_expression "operator_delete((void *)puVar35[-4])" identifier (argument_list "((void *)puVar35[-4])" ( (cast_expression "(void *)puVar35[-4]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) ))) ;) (expression_statement "uVar39 = local_b4;" (assignment_expression "uVar39 = local_b4" identifier = identifier) ;) })) (expression_statement "piVar22 = piVar22 + 3;" (assignment_expression "piVar22 = piVar22 + 3" identifier = (binary_expression "piVar22 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar22 != local_110)" ( (binary_expression "piVar22 != local_110" identifier != identifier) )) ;) })) (expression_statement "local_b4 = uVar39;" (assignment_expression "local_b4 = uVar39" identifier = identifier) ;) (expression_statement "puVar35[-4] = (uint)local_114;" (assignment_expression "puVar35[-4] = (uint)local_114" (subscript_expression "puVar35[-4]" identifier [ number_literal ]) = (cast_expression "(uint)local_114" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar35[-5] = 0x160cfa;" (assignment_expression "puVar35[-5] = 0x160cfa" (subscript_expression "puVar35[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar35[-4]);" (call_expression "operator_delete((void *)puVar35[-4])" identifier (argument_list "((void *)puVar35[-4])" ( (cast_expression "(void *)puVar35[-4]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[-4]" identifier [ number_literal ])) ))) ;) (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "iVar23 = iVar23 >> 1;" (assignment_expression "iVar23 = iVar23 >> 1" identifier = (binary_expression "iVar23 >> 1" identifier >> number_literal)) ;) (if_statement "if (iVar23 == 0) goto LAB_00160b72;" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00160b72;" goto statement_identifier ;)) (goto_statement "goto LAB_001609e8;" goto statement_identifier ;) })))
(translation_unit "void FUN_00160460(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)\n\n{\n  int ****ppppiVar1;\n  int ****ppppiVar2;\n  code *pcVar3;\n  int ***pppiVar4;\n  undefined **ppuVar5;\n  int **ppiVar6;\n  int *piVar7;\n  bool bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  uint **ppuVar11;\n  char cVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  int ****ppppiVar17;\n  int ***pppiVar18;\n  int ****ppppiVar19;\n  byte bVar20;\n  int iVar21;\n  uint ***pppuVar22;\n  uint uVar23;\n  int ****ppppiVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  int *piVar27;\n  undefined1 *puVar28;\n  int iVar29;\n  longlong lVar30;\n  longlong lVar31;\n  int local_11c;\n  int local_118;\n  undefined4 *local_114;\n  undefined4 *local_110;\n  uint ***local_10c;\n  uint ***local_108;\n  uint ***local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint **local_ec;\n  uint **local_e8;\n  uint local_e4;\n  uint local_e0;\n  int ***local_dc;\n  undefined4 *local_d8;\n  undefined8 local_d4;\n  undefined8 local_cc;\n  undefined8 local_c4;\n  uint ***local_bc;\n  undefined **local_b8;\n  uint ***local_b4;\n  uint local_b0;\n  uint **local_a4;\n  int local_a0;\n  uint *local_9c [4];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  int ***local_74;\n  uint **local_70;\n  uint **local_6c;\n  uint **local_68;\n  uint **local_64;\n  uint **local_60;\n  undefined4 *local_5c;\n  uint *local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int ***local_44;\n  uint **local_40;\n  uint **local_3c [4];\n  undefined8 local_2c;\n  undefined8 local_24;\n  \n  local_b8 = &__DT_PLTGOT;\n  local_e4 = param_5;\n  local_b4 = *(uint ****)(param_1 + 0x34);\n  local_e0 = param_6;\n  iVar13 = *(int *)(param_1 + 0x30);\n  uVar25 = (int)local_b4 - iVar13 >> 5;\n  local_cc._0_4_ = uVar25;\n  if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (undefined4 *)FUN_001e5200(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  puVar14 = (undefined4 *)*param_11;\njoined_r0x001608d0:\n  piVar27 = &local_11c;\n  if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }\n  local_ec = (uint **)0x0;\n  local_cc = *param_7;\n  local_d8 = local_114 + 1;\n  local_dc = (int ***)(local_b8 + -0x2d01);\n  local_b4 = (uint ***)(local_e4 - 1);\n  local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);\n  local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;\n  local_11c = (int)local_b8 + -0xeb73d;\n  local_e8 = (uint **)local_11c;\n  do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );\n  iVar29 = iVar29 >> 1;\n  if (iVar29 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}\n\n" (function_definition "void FUN_00160460(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)\n\n{\n  int ****ppppiVar1;\n  int ****ppppiVar2;\n  code *pcVar3;\n  int ***pppiVar4;\n  undefined **ppuVar5;\n  int **ppiVar6;\n  int *piVar7;\n  bool bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  uint **ppuVar11;\n  char cVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  int ****ppppiVar17;\n  int ***pppiVar18;\n  int ****ppppiVar19;\n  byte bVar20;\n  int iVar21;\n  uint ***pppuVar22;\n  uint uVar23;\n  int ****ppppiVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  int *piVar27;\n  undefined1 *puVar28;\n  int iVar29;\n  longlong lVar30;\n  longlong lVar31;\n  int local_11c;\n  int local_118;\n  undefined4 *local_114;\n  undefined4 *local_110;\n  uint ***local_10c;\n  uint ***local_108;\n  uint ***local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint **local_ec;\n  uint **local_e8;\n  uint local_e4;\n  uint local_e0;\n  int ***local_dc;\n  undefined4 *local_d8;\n  undefined8 local_d4;\n  undefined8 local_cc;\n  undefined8 local_c4;\n  uint ***local_bc;\n  undefined **local_b8;\n  uint ***local_b4;\n  uint local_b0;\n  uint **local_a4;\n  int local_a0;\n  uint *local_9c [4];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  int ***local_74;\n  uint **local_70;\n  uint **local_6c;\n  uint **local_68;\n  uint **local_64;\n  uint **local_60;\n  undefined4 *local_5c;\n  uint *local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int ***local_44;\n  uint **local_40;\n  uint **local_3c [4];\n  undefined8 local_2c;\n  undefined8 local_24;\n  \n  local_b8 = &__DT_PLTGOT;\n  local_e4 = param_5;\n  local_b4 = *(uint ****)(param_1 + 0x34);\n  local_e0 = param_6;\n  iVar13 = *(int *)(param_1 + 0x30);\n  uVar25 = (int)local_b4 - iVar13 >> 5;\n  local_cc._0_4_ = uVar25;\n  if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (undefined4 *)FUN_001e5200(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  puVar14 = (undefined4 *)*param_11;\njoined_r0x001608d0:\n  piVar27 = &local_11c;\n  if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }\n  local_ec = (uint **)0x0;\n  local_cc = *param_7;\n  local_d8 = local_114 + 1;\n  local_dc = (int ***)(local_b8 + -0x2d01);\n  local_b4 = (uint ***)(local_e4 - 1);\n  local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);\n  local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;\n  local_11c = (int)local_b8 + -0xeb73d;\n  local_e8 = (uint **)local_11c;\n  do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );\n  iVar29 = iVar29 >> 1;\n  if (iVar29 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}" primitive_type (function_declarator "FUN_00160460(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "uint param_6" type_identifier identifier) , (parameter_declaration "longlong *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "undefined4 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  int ****ppppiVar1;\n  int ****ppppiVar2;\n  code *pcVar3;\n  int ***pppiVar4;\n  undefined **ppuVar5;\n  int **ppiVar6;\n  int *piVar7;\n  bool bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  uint **ppuVar11;\n  char cVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  int ****ppppiVar17;\n  int ***pppiVar18;\n  int ****ppppiVar19;\n  byte bVar20;\n  int iVar21;\n  uint ***pppuVar22;\n  uint uVar23;\n  int ****ppppiVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  int *piVar27;\n  undefined1 *puVar28;\n  int iVar29;\n  longlong lVar30;\n  longlong lVar31;\n  int local_11c;\n  int local_118;\n  undefined4 *local_114;\n  undefined4 *local_110;\n  uint ***local_10c;\n  uint ***local_108;\n  uint ***local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint **local_ec;\n  uint **local_e8;\n  uint local_e4;\n  uint local_e0;\n  int ***local_dc;\n  undefined4 *local_d8;\n  undefined8 local_d4;\n  undefined8 local_cc;\n  undefined8 local_c4;\n  uint ***local_bc;\n  undefined **local_b8;\n  uint ***local_b4;\n  uint local_b0;\n  uint **local_a4;\n  int local_a0;\n  uint *local_9c [4];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  int ***local_74;\n  uint **local_70;\n  uint **local_6c;\n  uint **local_68;\n  uint **local_64;\n  uint **local_60;\n  undefined4 *local_5c;\n  uint *local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int ***local_44;\n  uint **local_40;\n  uint **local_3c [4];\n  undefined8 local_2c;\n  undefined8 local_24;\n  \n  local_b8 = &__DT_PLTGOT;\n  local_e4 = param_5;\n  local_b4 = *(uint ****)(param_1 + 0x34);\n  local_e0 = param_6;\n  iVar13 = *(int *)(param_1 + 0x30);\n  uVar25 = (int)local_b4 - iVar13 >> 5;\n  local_cc._0_4_ = uVar25;\n  if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (undefined4 *)FUN_001e5200(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  puVar14 = (undefined4 *)*param_11;\njoined_r0x001608d0:\n  piVar27 = &local_11c;\n  if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }\n  local_ec = (uint **)0x0;\n  local_cc = *param_7;\n  local_d8 = local_114 + 1;\n  local_dc = (int ***)(local_b8 + -0x2d01);\n  local_b4 = (uint ***)(local_e4 - 1);\n  local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);\n  local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;\n  local_11c = (int)local_b8 + -0xeb73d;\n  local_e8 = (uint **)local_11c;\n  do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );\n  iVar29 = iVar29 >> 1;\n  if (iVar29 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}" { (declaration "int ****ppppiVar1;" primitive_type (pointer_declarator "****ppppiVar1" * (pointer_declarator "***ppppiVar1" * (pointer_declarator "**ppppiVar1" * (pointer_declarator "*ppppiVar1" * identifier)))) ;) (declaration "int ****ppppiVar2;" primitive_type (pointer_declarator "****ppppiVar2" * (pointer_declarator "***ppppiVar2" * (pointer_declarator "**ppppiVar2" * (pointer_declarator "*ppppiVar2" * identifier)))) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int ***pppiVar4;" primitive_type (pointer_declarator "***pppiVar4" * (pointer_declarator "**pppiVar4" * (pointer_declarator "*pppiVar4" * identifier))) ;) (declaration "undefined **ppuVar5;" type_identifier (pointer_declarator "**ppuVar5" * (pointer_declarator "*ppuVar5" * identifier)) ;) (declaration "int **ppiVar6;" primitive_type (pointer_declarator "**ppiVar6" * (pointer_declarator "*ppiVar6" * identifier)) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "longlong lVar10;" type_identifier identifier ;) (declaration "uint **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int ****ppppiVar17;" primitive_type (pointer_declarator "****ppppiVar17" * (pointer_declarator "***ppppiVar17" * (pointer_declarator "**ppppiVar17" * (pointer_declarator "*ppppiVar17" * identifier)))) ;) (declaration "int ***pppiVar18;" primitive_type (pointer_declarator "***pppiVar18" * (pointer_declarator "**pppiVar18" * (pointer_declarator "*pppiVar18" * identifier))) ;) (declaration "int ****ppppiVar19;" primitive_type (pointer_declarator "****ppppiVar19" * (pointer_declarator "***ppppiVar19" * (pointer_declarator "**ppppiVar19" * (pointer_declarator "*ppppiVar19" * identifier)))) ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint ***pppuVar22;" type_identifier (pointer_declarator "***pppuVar22" * (pointer_declarator "**pppuVar22" * (pointer_declarator "*pppuVar22" * identifier))) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int ****ppppiVar24;" primitive_type (pointer_declarator "****ppppiVar24" * (pointer_declarator "***ppppiVar24" * (pointer_declarator "**ppppiVar24" * (pointer_declarator "*ppppiVar24" * identifier)))) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "undefined4 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "undefined1 *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "longlong lVar30;" type_identifier identifier ;) (declaration "longlong lVar31;" type_identifier identifier ;) (declaration "int local_11c;" primitive_type identifier ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "undefined4 *local_114;" type_identifier (pointer_declarator "*local_114" * identifier) ;) (declaration "undefined4 *local_110;" type_identifier (pointer_declarator "*local_110" * identifier) ;) (declaration "uint ***local_10c;" type_identifier (pointer_declarator "***local_10c" * (pointer_declarator "**local_10c" * (pointer_declarator "*local_10c" * identifier))) ;) (declaration "uint ***local_108;" type_identifier (pointer_declarator "***local_108" * (pointer_declarator "**local_108" * (pointer_declarator "*local_108" * identifier))) ;) (declaration "uint ***local_104;" type_identifier (pointer_declarator "***local_104" * (pointer_declarator "**local_104" * (pointer_declarator "*local_104" * identifier))) ;) (declaration "int local_100;" primitive_type identifier ;) (declaration "int local_fc;" primitive_type identifier ;) (declaration "int local_f8;" primitive_type identifier ;) (declaration "uint local_f4;" type_identifier identifier ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "uint **local_ec;" type_identifier (pointer_declarator "**local_ec" * (pointer_declarator "*local_ec" * identifier)) ;) (declaration "uint **local_e8;" type_identifier (pointer_declarator "**local_e8" * (pointer_declarator "*local_e8" * identifier)) ;) (declaration "uint local_e4;" type_identifier identifier ;) (declaration "uint local_e0;" type_identifier identifier ;) (declaration "int ***local_dc;" primitive_type (pointer_declarator "***local_dc" * (pointer_declarator "**local_dc" * (pointer_declarator "*local_dc" * identifier))) ;) (declaration "undefined4 *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "undefined8 local_d4;" type_identifier identifier ;) (declaration "undefined8 local_cc;" type_identifier identifier ;) (declaration "undefined8 local_c4;" type_identifier identifier ;) (declaration "uint ***local_bc;" type_identifier (pointer_declarator "***local_bc" * (pointer_declarator "**local_bc" * (pointer_declarator "*local_bc" * identifier))) ;) (declaration "undefined **local_b8;" type_identifier (pointer_declarator "**local_b8" * (pointer_declarator "*local_b8" * identifier)) ;) (declaration "uint ***local_b4;" type_identifier (pointer_declarator "***local_b4" * (pointer_declarator "**local_b4" * (pointer_declarator "*local_b4" * identifier))) ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "uint **local_a4;" type_identifier (pointer_declarator "**local_a4" * (pointer_declarator "*local_a4" * identifier)) ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "uint *local_9c [4];" type_identifier (pointer_declarator "*local_9c [4]" * (array_declarator "local_9c [4]" identifier [ number_literal ])) ;) (declaration "undefined1 *local_8c [2];" type_identifier (pointer_declarator "*local_8c [2]" * (array_declarator "local_8c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_84 [16];" type_identifier (array_declarator "local_84 [16]" identifier [ number_literal ]) ;) (declaration "int ***local_74;" primitive_type (pointer_declarator "***local_74" * (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier))) ;) (declaration "uint **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "uint **local_6c;" type_identifier (pointer_declarator "**local_6c" * (pointer_declarator "*local_6c" * identifier)) ;) (declaration "uint **local_68;" type_identifier (pointer_declarator "**local_68" * (pointer_declarator "*local_68" * identifier)) ;) (declaration "uint **local_64;" type_identifier (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier)) ;) (declaration "uint **local_60;" type_identifier (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "undefined4 *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int ***local_44;" primitive_type (pointer_declarator "***local_44" * (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier))) ;) (declaration "uint **local_40;" type_identifier (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier)) ;) (declaration "uint **local_3c [4];" type_identifier (pointer_declarator "**local_3c [4]" * (pointer_declarator "*local_3c [4]" * (array_declarator "local_3c [4]" identifier [ number_literal ]))) ;) (declaration "undefined8 local_2c;" type_identifier identifier ;) (declaration "undefined8 local_24;" type_identifier identifier ;) (expression_statement "local_b8 = &__DT_PLTGOT;" (assignment_expression "local_b8 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_e4 = param_5;" (assignment_expression "local_e4 = param_5" identifier = identifier) ;) (expression_statement "local_b4 = *(uint ****)(param_1 + 0x34);" (assignment_expression "local_b4 = *(uint ****)(param_1 + 0x34)" identifier = (pointer_expression "*(uint ****)(param_1 + 0x34)" * (cast_expression "(uint ****)(param_1 + 0x34)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_e0 = param_6;" (assignment_expression "local_e0 = param_6" identifier = identifier) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = (int)local_b4 - iVar13 >> 5;" (assignment_expression "uVar25 = (int)local_b4 - iVar13 >> 5" identifier = (binary_expression "(int)local_b4 - iVar13 >> 5" (binary_expression "(int)local_b4 - iVar13" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal)) ;) (expression_statement "local_cc._0_4_ = uVar25;" (assignment_expression "local_cc._0_4_ = uVar25" (field_expression "local_cc._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }" if (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }" { (expression_statement "iVar21 = ((int)local_b4 - iVar13) + iVar13;" (assignment_expression "iVar21 = ((int)local_b4 - iVar13) + iVar13" identifier = (binary_expression "((int)local_b4 - iVar13) + iVar13" (parenthesized_expression "((int)local_b4 - iVar13)" ( (binary_expression "(int)local_b4 - iVar13" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + identifier)) ;) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (do_statement "do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);" do (compound_statement "{\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    }" { (if_statement "if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }" if (parenthesized_expression "(*(int *)(iVar13 + 0x1c) != 0)" ( (binary_expression "*(int *)(iVar13 + 0x1c) != 0" (pointer_expression "*(int *)(iVar13 + 0x1c)" * (cast_expression "(int *)(iVar13 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1c)" ( (binary_expression "iVar13 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        bVar8 = true;\n      }" { (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) })) (expression_statement "iVar13 = iVar13 + 0x20;" (assignment_expression "iVar13 = iVar13 + 0x20" identifier = (binary_expression "iVar13 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar21 != iVar13)" ( (binary_expression "iVar21 != iVar13" identifier != identifier) )) ;) (if_statement "if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }" if (parenthesized_expression "(bVar8)" ( identifier )) (compound_statement "{\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }" { (expression_statement "local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);" (assignment_expression "local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(uVar25 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(uVar25 * 0xc)" identifier (argument_list "(uVar25 * 0xc)" ( (binary_expression "uVar25 * 0xc" identifier * number_literal) ))))) ;) (expression_statement "puVar14 = local_114;" (assignment_expression "puVar14 = local_114" identifier = identifier) ;) (expression_statement "uVar23 = uVar25;" (assignment_expression "uVar23 = uVar25" identifier = identifier) ;) (do_statement "do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);" do (compound_statement "{\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      }" { (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" identifier = (binary_expression "uVar23 - 1" identifier - number_literal)) ;) (expression_statement "puVar14 = puVar14 + 3;" (assignment_expression "puVar14 = puVar14 + 3" identifier = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) ;) (expression_statement "local_110 = local_114 + uVar25 * 3;" (assignment_expression "local_110 = local_114 + uVar25 * 3" identifier = (binary_expression "local_114 + uVar25 * 3" identifier + (binary_expression "uVar25 * 3" identifier * number_literal))) ;) (expression_statement "puVar14 = (undefined4 *)*param_11;" (assignment_expression "puVar14 = (undefined4 *)*param_11" identifier = (cast_expression "(undefined4 *)*param_11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_11" * identifier))) ;) (expression_statement "local_f4 = (uint)local_cc;" (assignment_expression "local_f4 = (uint)local_cc" identifier = (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto joined_r0x001608d0;" goto statement_identifier ;) })) })) (expression_statement "local_114 = (undefined4 *)FUN_001e5200(0xc);" (assignment_expression "local_114 = (undefined4 *)FUN_001e5200(0xc)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0xc)" identifier (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "local_f4 = 1;" (assignment_expression "local_f4 = 1" identifier = number_literal) ;) (expression_statement "*local_114 = 0;" (assignment_expression "*local_114 = 0" (pointer_expression "*local_114" * identifier) = number_literal) ;) (expression_statement "local_114[1] = 0;" (assignment_expression "local_114[1] = 0" (subscript_expression "local_114[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_114[2] = 0;" (assignment_expression "local_114[2] = 0" (subscript_expression "local_114[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_110 = local_114 + 3;" (assignment_expression "local_110 = local_114 + 3" identifier = (binary_expression "local_114 + 3" identifier + number_literal)) ;) (expression_statement "puVar14 = (undefined4 *)*param_11;" (assignment_expression "puVar14 = (undefined4 *)*param_11" identifier = (cast_expression "(undefined4 *)*param_11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_11" * identifier))) ;) (labeled_statement "joined_r0x001608d0:\n  piVar27 = &local_11c;" statement_identifier : (expression_statement "piVar27 = &local_11c;" (assignment_expression "piVar27 = &local_11c" identifier = (pointer_expression "&local_11c" & identifier)) ;)) (if_statement "if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }" if (parenthesized_expression "(puVar14 != param_11)" ( (binary_expression "puVar14 != param_11" identifier != identifier) )) (compound_statement "{\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }" { (expression_statement "piVar27 = &local_11c;" (assignment_expression "piVar27 = &local_11c" identifier = (pointer_expression "&local_11c" & identifier)) ;) (expression_statement "local_d4._0_4_ = (int ****)local_3c;" (assignment_expression "local_d4._0_4_ = (int ****)local_3c" (field_expression "local_d4._0_4_" identifier . field_identifier) = (cast_expression "(int ****)local_3c" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "local_bc = &local_a4;" (assignment_expression "local_bc = &local_a4" identifier = (pointer_expression "&local_a4" & identifier)) ;) (do_statement "do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);" do (compound_statement "{\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    }" { (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar14 + 2" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160572;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160572" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_b4 = (uint ***)FUN_000ede60();" (assignment_expression "local_b4 = (uint ***)FUN_000ede60()" identifier = (cast_expression "(uint ***)FUN_000ede60()" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (call_expression "FUN_000ede60()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar14 + 2" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160586;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160586" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar15 = FUN_000edef0();" (assignment_expression "uVar15 = FUN_000edef0()" identifier = (call_expression "FUN_000edef0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_5c = (undefined4 *)puVar14[2];" (assignment_expression "local_5c = (undefined4 *)puVar14[2]" identifier = (cast_expression "(undefined4 *)puVar14[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[2]" identifier [ number_literal ]))) ;) (expression_statement "local_58 = (uint *)puVar14[3];" (assignment_expression "local_58 = (uint *)puVar14[3]" identifier = (cast_expression "(uint *)puVar14[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[3]" identifier [ number_literal ]))) ;) (expression_statement "local_54 = puVar14[4];" (assignment_expression "local_54 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "local_50 = puVar14[5];" (assignment_expression "local_50 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "local_4c = puVar14[6];" (assignment_expression "local_4c = puVar14[6]" identifier = (subscript_expression "puVar14[6]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar14[7];" (assignment_expression "local_48 = puVar14[7]" identifier = (subscript_expression "puVar14[7]" identifier [ number_literal ])) ;) (expression_statement "local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);" (assignment_expression "local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00)" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (cast_expression "(uint **)((uint)local_3c[0] & 0xffffff00)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)local_3c[0] & 0xffffff00)" ( (binary_expression "(uint)local_3c[0] & 0xffffff00" (cast_expression "(uint)local_3c[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_3c[0]" identifier [ number_literal ])) & number_literal) )))) ;) (expression_statement "local_44 = (int ***)(int ****)local_d4;" (assignment_expression "local_44 = (int ***)(int ****)local_d4" identifier = (cast_expression "(int ***)(int ****)local_d4" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier))) ;) (expression_statement "iVar13 = (int)local_b4[7];" (assignment_expression "iVar13 = (int)local_b4[7]" identifier = (cast_expression "(int)local_b4[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_b4[7]" identifier [ number_literal ]))) ;) (expression_statement "local_40 = (uint **)0x0;" (assignment_expression "local_40 = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_2c._0_4_ = 0;" (assignment_expression "local_2c._0_4_ = 0" (field_expression "local_2c._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_2c._4_4_ = 0;" (assignment_expression "local_2c._4_4_ = 0" (field_expression "local_2c._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_24._0_4_ = 1;" (assignment_expression "local_24._0_4_ = 1" (field_expression "local_24._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_24._4_4_ = 0;" (assignment_expression "local_24._4_4_ = 0" (field_expression "local_24._4_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }" { (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar13 + 0x1c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160600;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160600" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000669a0();" (call_expression "FUN_000669a0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = (int)*local_b4;" (assignment_expression "iVar13 = (int)*local_b4" identifier = (cast_expression "(int)*local_b4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*local_b4" * identifier))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -8) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -8) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -8)" * (cast_expression "(undefined4 *)((int)piVar27 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0xc) = local_b4;" (assignment_expression "*(uint ****)((int)piVar27 + -0xc) = local_b4" (pointer_expression "*(uint ****)((int)piVar27 + -0xc)" * (cast_expression "(uint ****)((int)piVar27 + -0xc)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_bc;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_bc" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" * (cast_expression "(uint ****)((int)piVar27 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(iVar13 + 0x40);" (assignment_expression "pcVar3 = *(code **)(iVar13 + 0x40)" identifier = (pointer_expression "*(code **)(iVar13 + 0x40)" * (cast_expression "(code **)(iVar13 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x40)" ( (binary_expression "iVar13 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160619;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160619" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(uint ***)((int)piVar27 + -0x14) = local_a4;" (assignment_expression "*(uint ***)((int)piVar27 + -0x14) = local_a4" (pointer_expression "*(uint ***)((int)piVar27 + -0x14)" * (cast_expression "(uint ***)((int)piVar27 + -0x14)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x16062a" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar12 = FUN_00096ec0();" (assignment_expression "cVar12 = FUN_00096ec0()" identifier = (call_expression "FUN_00096ec0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }" if (parenthesized_expression "(cVar12 == '\0')" ( (binary_expression "cVar12 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }" { (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_bc;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_bc" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" * (cast_expression "(uint ****)((int)piVar27 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x14) = &local_44;" (assignment_expression "*(int *****)((int)piVar27 + -0x14) = &local_44" (pointer_expression "*(int *****)((int)piVar27 + -0x14)" * (cast_expression "(int *****)((int)piVar27 + -0x14)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001ee9c0();" (call_expression "FUN_001ee9c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar28 = (undefined1 *)((int)piVar27 + -4);" (assignment_expression "puVar28 = (undefined1 *)((int)piVar27 + -4)" identifier = (cast_expression "(undefined1 *)((int)piVar27 + -4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -4)" ( (binary_expression "(int)piVar27 + -4" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }" else (compound_statement "{\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }" { (expression_statement "local_d8 = (undefined4 *)local_84;" (assignment_expression "local_d8 = (undefined4 *)local_84" identifier = (cast_expression "(undefined4 *)local_84" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -8) = 0" (pointer_expression "*(undefined4 *)((int)piVar27 + -8)" * (cast_expression "(undefined4 *)((int)piVar27 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;" (assignment_expression "*(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4" (pointer_expression "*(int *)((int)piVar27 + -0xc)" * (cast_expression "(int *)((int)piVar27 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a0 + (int)local_a4" identifier + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_a4;" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_a4" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" * (cast_expression "(uint ***)((int)piVar27 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 ***)((int)piVar27 + -0x14) = local_8c;" (assignment_expression "*(undefined1 ***)((int)piVar27 + -0x14) = local_8c" (pointer_expression "*(undefined1 ***)((int)piVar27 + -0x14)" * (cast_expression "(undefined1 ***)((int)piVar27 + -0x14)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x160662;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x160662" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_8c[0] = (undefined1 *)local_d8;" (assignment_expression "local_8c[0] = (undefined1 *)local_d8" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = (cast_expression "(undefined1 *)local_d8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 ***)((int)piVar27 + -0x10) = local_8c;" (assignment_expression "*(undefined1 ***)((int)piVar27 + -0x10) = local_8c" (pointer_expression "*(undefined1 ***)((int)piVar27 + -0x10)" * (cast_expression "(undefined1 ***)((int)piVar27 + -0x10)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x14) = &local_74;" (assignment_expression "*(int *****)((int)piVar27 + -0x14) = &local_74" (pointer_expression "*(int *****)((int)piVar27 + -0x14)" * (cast_expression "(int *****)((int)piVar27 + -0x14)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_74" & identifier)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x160674;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x160674" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0009e270();" (call_expression "FUN_0009e270()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar11 = local_3c[0];" (assignment_expression "ppuVar11 = local_3c[0]" identifier = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (expression_statement "pppiVar18 = local_44;" (assignment_expression "pppiVar18 = local_44" identifier = identifier) ;) (expression_statement "local_dc = local_74;" (assignment_expression "local_dc = local_74" identifier = identifier) ;) (expression_statement "pppuVar22 = &local_6c;" (assignment_expression "pppuVar22 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (if_statement "if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }" if (parenthesized_expression "((uint ***)local_74 == &local_6c)" ( (binary_expression "(uint ***)local_74 == &local_6c" (cast_expression "(uint ***)local_74" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) == (pointer_expression "&local_6c" & identifier)) )) (compound_statement "{\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }" { (if_statement "if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }" if (parenthesized_expression "((int ***)local_70 != (int ***)0x0)" ( (binary_expression "(int ***)local_70 != (int ***)0x0" (cast_expression "(int ***)local_70" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) != (cast_expression "(int ***)0x0" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }" { (if_statement "if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }" if (parenthesized_expression "((int ***)local_70 == (int ***)0x1)" ( (binary_expression "(int ***)local_70 == (int ***)0x1" (cast_expression "(int ***)local_70" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) == (cast_expression "(int ***)0x1" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }" { (expression_statement "*(undefined1 *)local_44 = local_6c._0_1_;" (assignment_expression "*(undefined1 *)local_44 = local_6c._0_1_" (pointer_expression "*(undefined1 *)local_44" * (cast_expression "(undefined1 *)local_44" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_6c._0_1_" identifier . field_identifier)) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) (expression_statement "*(undefined1 *)((int)local_44 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)local_44 + 1) = 0" (pointer_expression "*(undefined1 *)((int)local_44 + 1)" * (cast_expression "(undefined1 *)((int)local_44 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_001606d8;" goto statement_identifier ;) })) (expression_statement "local_dc = (int ***)&local_6c;" (assignment_expression "local_dc = (int ***)&local_6c" identifier = (cast_expression "(int ***)&local_6c" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&local_6c" & identifier))) ;) (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_70;" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_70" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" * (cast_expression "(uint ***)((int)piVar27 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0x14) = &local_6c;" (assignment_expression "*(uint ****)((int)piVar27 + -0x14) = &local_6c" (pointer_expression "*(uint ****)((int)piVar27 + -0x14)" * (cast_expression "(uint ****)((int)piVar27 + -0x14)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(int ****)((int)piVar27 + -0x18) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0x18) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0x18)" * (cast_expression "(int ****)((int)piVar27 + -0x18)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x1c) = 0x161301" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x1c)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x1c)" ( (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));" (call_expression "memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10))" identifier (argument_list "(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10))" ( (pointer_expression "*(void **)((int)piVar27 + -0x18)" * (cast_expression "(void **)((int)piVar27 + -0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)piVar27 + -0x14)" * (cast_expression "(void **)((int)piVar27 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)piVar27 + -0x10)" * (cast_expression "(size_t *)((int)piVar27 + -0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pppuVar22 = (uint ***)local_dc;" (assignment_expression "pppuVar22 = (uint ***)local_dc" identifier = (cast_expression "(uint ***)local_dc" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) })) (expression_statement "*(undefined1 *)((int)local_44 + (int)local_70) = 0;" (assignment_expression "*(undefined1 *)((int)local_44 + (int)local_70) = 0" (pointer_expression "*(undefined1 *)((int)local_44 + (int)local_70)" * (cast_expression "(undefined1 *)((int)local_44 + (int)local_70)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + (int)local_70)" ( (binary_expression "(int)local_44 + (int)local_70" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) }) (else_clause "else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }" else (compound_statement "{\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }" { (expression_statement "local_e8 = local_6c;" (assignment_expression "local_e8 = local_6c" identifier = identifier) ;) (if_statement "if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }" if (parenthesized_expression "((int ****)local_44 != (int ****)local_d4)" ( (binary_expression "(int ****)local_44 != (int ****)local_d4" (cast_expression "(int ****)local_44" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) (compound_statement "{\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }" { (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) (expression_statement "local_ec = local_3c[0];" (assignment_expression "local_ec = local_3c[0]" identifier = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (expression_statement "local_3c[0] = local_6c;" (assignment_expression "local_3c[0] = local_6c" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = local_74;" (assignment_expression "local_44 = local_74" identifier = identifier) ;) (if_statement "if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }" if (parenthesized_expression "((uint ***)pppiVar18 != (uint ***)0x0)" ( (binary_expression "(uint ***)pppiVar18 != (uint ***)0x0" (cast_expression "(uint ***)pppiVar18" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) != (cast_expression "(uint ***)0x0" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }" { (expression_statement "local_74 = pppiVar18;" (assignment_expression "local_74 = pppiVar18" identifier = identifier) ;) (expression_statement "local_6c = ppuVar11;" (assignment_expression "local_6c = ppuVar11" identifier = identifier) ;) (goto_statement "goto LAB_001606d8;" goto statement_identifier ;) })) })) (expression_statement "local_3c[0] = local_6c;" (assignment_expression "local_3c[0] = local_6c" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) (expression_statement "local_44 = local_74;" (assignment_expression "local_44 = local_74" identifier = identifier) ;) (expression_statement "pppuVar22 = &local_6c;" (assignment_expression "pppuVar22 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "local_74 = (int ***)&local_6c;" (assignment_expression "local_74 = (int ***)&local_6c" identifier = (cast_expression "(int ***)&local_6c" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&local_6c" & identifier))) ;) }))) (labeled_statement "LAB_001606d8:\n        local_70 = (uint **)0x0;" statement_identifier : (expression_statement "local_70 = (uint **)0x0;" (assignment_expression "local_70 = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "*(undefined1 *)local_74 = 0;" (assignment_expression "*(undefined1 *)local_74 = 0" (pointer_expression "*(undefined1 *)local_74" * (cast_expression "(undefined1 *)local_74" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }" if (parenthesized_expression "((uint ***)local_74 != pppuVar22)" ( (binary_expression "(uint ***)local_74 != pppuVar22" (cast_expression "(uint ***)local_74" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) != identifier) )) (compound_statement "{\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }" { (expression_statement "*(int ****)((int)piVar27 + -0x18) = local_74;" (assignment_expression "*(int ****)((int)piVar27 + -0x18) = local_74" (pointer_expression "*(int ****)((int)piVar27 + -0x18)" * (cast_expression "(int ****)((int)piVar27 + -0x18)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x1c)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x1c)" ( (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar28 = (undefined1 *)((int)piVar27 + -8);" (assignment_expression "puVar28 = (undefined1 *)((int)piVar27 + -8)" identifier = (cast_expression "(undefined1 *)((int)piVar27 + -8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }" if (parenthesized_expression "((undefined4 *)local_8c[0] != local_d8)" ( (binary_expression "(undefined4 *)local_8c[0] != local_d8" (cast_expression "(undefined4 *)local_8c[0]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_8c[0]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }" { (expression_statement "*(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];" (assignment_expression "*(undefined1 **)((int)piVar27 + -0x18) = local_8c[0]" (pointer_expression "*(undefined1 **)((int)piVar27 + -0x18)" * (cast_expression "(undefined1 **)((int)piVar27 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_8c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x1c) = 0x160718" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x1c)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x1c)" ( (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar28 = (undefined1 *)((int)piVar27 + -8);" (assignment_expression "puVar28 = (undefined1 *)((int)piVar27 + -8)" identifier = (cast_expression "(undefined1 *)((int)piVar27 + -8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) }))) (expression_statement "piVar27 = (int *)puVar28;" (assignment_expression "piVar27 = (int *)puVar28" identifier = (cast_expression "(int *)puVar28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }" if (parenthesized_expression "(local_a4 != local_9c)" ( (binary_expression "local_a4 != local_9c" identifier != identifier) )) (compound_statement "{\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }" { (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_a4;" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_a4" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" * (cast_expression "(uint ***)((int)piVar27 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16073a" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pppuVar22 = local_b4;" (assignment_expression "pppuVar22 = local_b4" identifier = identifier) ;) (if_statement "if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }" if (parenthesized_expression "(puVar14[2] == -4)" ( (binary_expression "puVar14[2] == -4" (subscript_expression "puVar14[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }" { (expression_statement "piVar7 = (int *)puVar14[6];" (assignment_expression "piVar7 = (int *)puVar14[6]" identifier = (cast_expression "(int *)puVar14[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[6]" identifier [ number_literal ]))) ;) (expression_statement "local_2c._0_4_ = piVar7[3];" (assignment_expression "local_2c._0_4_ = piVar7[3]" (field_expression "local_2c._0_4_" identifier . field_identifier) = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "local_2c._4_4_ = piVar7[4];" (assignment_expression "local_2c._4_4_ = piVar7[4]" (field_expression "local_2c._4_4_" identifier . field_identifier) = (subscript_expression "piVar7[4]" identifier [ number_literal ])) ;) (expression_statement "ppuVar5 = *(undefined ***)(*piVar7 + 0xc);" (assignment_expression "ppuVar5 = *(undefined ***)(*piVar7 + 0xc)" identifier = (pointer_expression "*(undefined ***)(*piVar7 + 0xc)" * (cast_expression "(undefined ***)(*piVar7 + 0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar7 + 0xc)" ( (binary_expression "*piVar7 + 0xc" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }" if (parenthesized_expression "(ppuVar5 == local_b8 + -0xc6e88)" ( (binary_expression "ppuVar5 == local_b8 + -0xc6e88" identifier == (binary_expression "local_b8 + -0xc6e88" identifier + number_literal)) )) (compound_statement "{\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }" { (expression_statement "local_24 = *(undefined8 *)(piVar7 + 9);" (assignment_expression "local_24 = *(undefined8 *)(piVar7 + 9)" identifier = (pointer_expression "*(undefined8 *)(piVar7 + 9)" * (cast_expression "(undefined8 *)(piVar7 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 9)" ( (binary_expression "piVar7 + 9" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(undefined8 *)(piVar7 + 3);" (assignment_expression "local_2c = *(undefined8 *)(piVar7 + 3)" identifier = (pointer_expression "*(undefined8 *)(piVar7 + 3)" * (cast_expression "(undefined8 *)(piVar7 + 3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 3)" ( (binary_expression "piVar7 + 3" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }" else (compound_statement "{\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }" { (expression_statement "*(int **)((int)piVar27 + -0x10) = piVar7;" (assignment_expression "*(int **)((int)piVar27 + -0x10) = piVar7" (pointer_expression "*(int **)((int)piVar27 + -0x10)" * (cast_expression "(int **)((int)piVar27 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16140c" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_24 = (*(code *)ppuVar5)();" (assignment_expression "local_24 = (*(code *)ppuVar5)()" identifier = (call_expression "(*(code *)ppuVar5)()" (parenthesized_expression "(*(code *)ppuVar5)" ( (pointer_expression "*(code *)ppuVar5" * (cast_expression "(code *)ppuVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) }))) }) (else_clause "else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }" else (compound_statement "{\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }" { (expression_statement "iVar13 = (int)*local_b4;" (assignment_expression "iVar13 = (int)*local_b4" identifier = (cast_expression "(int)*local_b4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*local_b4" * identifier))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_b4;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_b4" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" * (cast_expression "(uint ****)((int)piVar27 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(iVar13 + 0x3c);" (assignment_expression "pcVar3 = *(code **)(iVar13 + 0x3c)" identifier = (pointer_expression "*(code **)(iVar13 + 0x3c)" * (cast_expression "(code **)(iVar13 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x3c)" ( (binary_expression "iVar13 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160757;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160757" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_2c = (*pcVar3)();" (assignment_expression "local_2c = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar13 = (int)*pppuVar22;" (assignment_expression "iVar13 = (int)*pppuVar22" identifier = (cast_expression "(int)*pppuVar22" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar22" * identifier))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = pppuVar22;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = pppuVar22" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" * (cast_expression "(uint ****)((int)piVar27 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(iVar13 + 0x5c);" (assignment_expression "pcVar3 = *(code **)(iVar13 + 0x5c)" identifier = (pointer_expression "*(code **)(iVar13 + 0x5c)" * (cast_expression "(code **)(iVar13 + 0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x5c)" ( (binary_expression "iVar13 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160767;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160767" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_24 = (*pcVar3)();" (assignment_expression "local_24 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "iVar13 = (int)local_b4[7];" (assignment_expression "iVar13 = (int)local_b4[7]" identifier = (cast_expression "(int)local_b4[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_b4[7]" identifier [ number_literal ]))) ;) (if_statement "if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }" { (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar13 + 0x1c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160791;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160791" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000679d0();" (call_expression "FUN_000679d0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint ***)((int)piVar27 + -0xc) = local_b4[1];" (assignment_expression "*(uint ***)((int)piVar27 + -0xc) = local_b4[1]" (pointer_expression "*(uint ***)((int)piVar27 + -0xc)" * (cast_expression "(uint ***)((int)piVar27 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_b4[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)((int)piVar27 + -0x10) = param_1;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = param_1" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar12 = FUN_0015b690();" (assignment_expression "cVar12 = FUN_0015b690()" identifier = (call_expression "FUN_0015b690()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }" if (parenthesized_expression "(cVar12 == '\0')" ( (binary_expression "cVar12 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }" { (labeled_statement "LAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;" statement_identifier : (expression_statement "puVar16 = (undefined4 *)*puVar14;" (assignment_expression "puVar16 = (undefined4 *)*puVar14" identifier = (cast_expression "(undefined4 *)*puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;)) }) (else_clause "else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }" else (compound_statement "{\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }" { (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x34) != iVar13)" ( (binary_expression "*(int *)(param_1 + 0x34) != iVar13" (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }" { (if_statement "if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }" if (parenthesized_expression "((uint)local_cc != 0)" ( (binary_expression "(uint)local_cc != 0" (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal) )) (compound_statement "{\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }" { (expression_statement "puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);" (assignment_expression "puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20)" identifier = (cast_expression "(undefined4 *)(iVar13 + uVar25 * 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + uVar25 * 0x20)" ( (binary_expression "iVar13 + uVar25 * 0x20" identifier + (binary_expression "uVar25 * 0x20" identifier * number_literal)) )))) ;) (expression_statement "uVar15 = *puVar16;" (assignment_expression "uVar15 = *puVar16" identifier = (pointer_expression "*puVar16" * identifier)) ;) (if_statement "if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }" if (parenthesized_expression "(*(char *)(puVar16 + 6) == '\0')" ( (binary_expression "*(char *)(puVar16 + 6) == '\0'" (pointer_expression "*(char *)(puVar16 + 6)" * (cast_expression "(char *)(puVar16 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 6)" ( (binary_expression "puVar16 + 6" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }" { (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int ****)((int)piVar27 + -0x10) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0x10) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0x10)" * (cast_expression "(int ****)((int)piVar27 + -0x10)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));" (assignment_expression "iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc))" identifier = (call_expression "strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc))" identifier (argument_list "(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc))" ( (pointer_expression "*(char **)((int)piVar27 + -0x10)" * (cast_expression "(char **)((int)piVar27 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)piVar27 + -0xc)" * (cast_expression "(char **)((int)piVar27 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) }) (else_clause "else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }" else (compound_statement "{\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }" { (expression_statement "*(undefined4 *)((int)piVar27 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -8) = 0" (pointer_expression "*(undefined4 *)((int)piVar27 + -8)" * (cast_expression "(undefined4 *)((int)piVar27 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int ****)((int)piVar27 + -0xc) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0xc) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0xc)" * (cast_expression "(int ****)((int)piVar27 + -0xc)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x10) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x10) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160835;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160835" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));" (assignment_expression "iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8))" identifier = (call_expression "fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8))" identifier (argument_list "(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8))" ( (pointer_expression "*(char **)((int)piVar27 + -0x10)" * (cast_expression "(char **)((int)piVar27 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)piVar27 + -0xc)" * (cast_expression "(char **)((int)piVar27 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)piVar27 + -8)" * (cast_expression "(int *)((int)piVar27 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) }))) (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar25 = uVar25 + 1;" (assignment_expression "uVar25 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (if_statement "if (uVar25 == (uint)local_cc) goto LAB_001610b0;" if (parenthesized_expression "(uVar25 == (uint)local_cc)" ( (binary_expression "uVar25 == (uint)local_cc" identifier == (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (goto_statement "goto LAB_001610b0;" goto statement_identifier ;)) (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) })) (if_statement "if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }" if (parenthesized_expression "(uVar25 < (uint)local_cc)" ( (binary_expression "uVar25 < (uint)local_cc" identifier < (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }" { (expression_statement "puVar16 = local_114;" (assignment_expression "puVar16 = local_114" identifier = identifier) ;) (if_statement "if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }" if (parenthesized_expression "(uVar25 < local_f4)" ( (binary_expression "uVar25 < local_f4" identifier < identifier) )) (compound_statement "{\n                puVar16 = local_114 + uVar25 * 3;\n              }" { (expression_statement "puVar16 = local_114 + uVar25 * 3;" (assignment_expression "puVar16 = local_114 + uVar25 * 3" identifier = (binary_expression "local_114 + uVar25 * 3" identifier + (binary_expression "uVar25 * 3" identifier * number_literal))) ;) })) (expression_statement "puVar26 = (undefined4 *)puVar16[1];" (assignment_expression "puVar26 = (undefined4 *)puVar16[1]" identifier = (cast_expression "(undefined4 *)puVar16[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar16[1]" identifier [ number_literal ]))) ;) (if_statement "if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;" if (parenthesized_expression "(puVar26 != (undefined4 *)puVar16[2])" ( (binary_expression "puVar26 != (undefined4 *)puVar16[2]" identifier != (cast_expression "(undefined4 *)puVar16[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar16[2]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00161250;" goto statement_identifier ;)) (expression_statement "*(undefined4 ***)((int)piVar27 + -8) = &local_5c;" (assignment_expression "*(undefined4 ***)((int)piVar27 + -8) = &local_5c" (pointer_expression "*(undefined4 ***)((int)piVar27 + -8)" * (cast_expression "(undefined4 ***)((int)piVar27 + -8)" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0xc) = puVar26;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0xc) = puVar26" (pointer_expression "*(undefined4 **)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar16;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar16" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160881;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160881" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00163d60();" (call_expression "FUN_00163d60()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_001612ad;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_001610b0;" goto statement_identifier ;) })) (expression_statement "puVar26 = (undefined4 *)local_114[1];" (assignment_expression "puVar26 = (undefined4 *)local_114[1]" identifier = (cast_expression "(undefined4 *)local_114[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_114[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar16 = local_114;" (assignment_expression "puVar16 = local_114" identifier = identifier) ;) (if_statement "if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }" if (parenthesized_expression "(puVar26 == (undefined4 *)local_114[2])" ( (binary_expression "puVar26 == (undefined4 *)local_114[2]" identifier == (cast_expression "(undefined4 *)local_114[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_114[2]" identifier [ number_literal ]))) )) (compound_statement "{\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }" { (expression_statement "*(undefined4 ***)((int)piVar27 + -8) = &local_5c;" (assignment_expression "*(undefined4 ***)((int)piVar27 + -8) = &local_5c" (pointer_expression "*(undefined4 ***)((int)piVar27 + -8)" * (cast_expression "(undefined4 ***)((int)piVar27 + -8)" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0xc) = puVar26;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0xc) = puVar26" (pointer_expression "*(undefined4 **)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = local_114;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = local_114" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x161485;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x161485" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00163d60();" (call_expression "FUN_00163d60()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }" else (compound_statement "{\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }" { (labeled_statement "LAB_00161250:\n          *puVar26 = local_5c;" statement_identifier : (expression_statement "*puVar26 = local_5c;" (assignment_expression "*puVar26 = local_5c" (pointer_expression "*puVar26" * identifier) = identifier) ;)) (expression_statement "puVar26[1] = local_58;" (assignment_expression "puVar26[1] = local_58" (subscript_expression "puVar26[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[2] = local_54;" (assignment_expression "puVar26[2] = local_54" (subscript_expression "puVar26[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[3] = local_50;" (assignment_expression "puVar26[3] = local_50" (subscript_expression "puVar26[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[4] = local_4c;" (assignment_expression "puVar26[4] = local_4c" (subscript_expression "puVar26[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[5] = local_48;" (assignment_expression "puVar26[5] = local_48" (subscript_expression "puVar26[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[6] = puVar26 + 8;" (assignment_expression "puVar26[6] = puVar26 + 8" (subscript_expression "puVar26[6]" identifier [ number_literal ]) = (binary_expression "puVar26 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar27 + -4)" * (cast_expression "(undefined4 *)((int)piVar27 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -4)" ( (binary_expression "(int)piVar27 + -4" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);" (assignment_expression "*(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44)" (pointer_expression "*(undefined1 **)((int)piVar27 + -8)" * (cast_expression "(undefined1 **)((int)piVar27 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)local_40 + (int)local_44)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + (int)local_44)" ( (binary_expression "(int)local_40 + (int)local_44" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(int ****)((int)piVar27 + -0xc) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0xc) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0xc)" * (cast_expression "(int ****)((int)piVar27 + -0xc)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar26 + 6" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16128e" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined8 *)(puVar26 + 0xc) = local_2c;" (assignment_expression "*(undefined8 *)(puVar26 + 0xc) = local_2c" (pointer_expression "*(undefined8 *)(puVar26 + 0xc)" * (cast_expression "(undefined8 *)(puVar26 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xc)" ( (binary_expression "puVar26 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(puVar26 + 0xe) = local_24;" (assignment_expression "*(undefined8 *)(puVar26 + 0xe) = local_24" (pointer_expression "*(undefined8 *)(puVar26 + 0xe)" * (cast_expression "(undefined8 *)(puVar26 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xe)" ( (binary_expression "puVar26 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar16[1] = puVar16[1] + 0x40;" (assignment_expression "puVar16[1] = puVar16[1] + 0x40" (subscript_expression "puVar16[1]" identifier [ number_literal ]) = (binary_expression "puVar16[1] + 0x40" (subscript_expression "puVar16[1]" identifier [ number_literal ]) + number_literal)) ;) }))) (labeled_statement "LAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;" statement_identifier : (expression_statement "puVar16 = (undefined4 *)*puVar14;" (assignment_expression "puVar16 = (undefined4 *)*puVar14" identifier = (cast_expression "(undefined4 *)*puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;)) (expression_statement "param_11[2] = param_11[2] + -1;" (assignment_expression "param_11[2] = param_11[2] + -1" (subscript_expression "param_11[2]" identifier [ number_literal ]) = (binary_expression "param_11[2] + -1" (subscript_expression "param_11[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e9f90();" (call_expression "FUN_001e9f90()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }" if (parenthesized_expression "((int ****)local_44 != (int ****)local_d4)" ( (binary_expression "(int ****)local_44 != (int ****)local_d4" (cast_expression "(int ****)local_44" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) (compound_statement "{\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }" { (expression_statement "*(int ****)((int)piVar27 + -0x10) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0x10) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0x10)" * (cast_expression "(int ****)((int)piVar27 + -0x10)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar14 = puVar16;" (assignment_expression "puVar14 = puVar16" identifier = identifier) ;) }) while (parenthesized_expression "(puVar16 != param_11)" ( (binary_expression "puVar16 != param_11" identifier != identifier) )) ;) })) (expression_statement "local_ec = (uint **)0x0;" (assignment_expression "local_ec = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_cc = *param_7;" (assignment_expression "local_cc = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "local_d8 = local_114 + 1;" (assignment_expression "local_d8 = local_114 + 1" identifier = (binary_expression "local_114 + 1" identifier + number_literal)) ;) (expression_statement "local_dc = (int ***)(local_b8 + -0x2d01);" (assignment_expression "local_dc = (int ***)(local_b8 + -0x2d01)" identifier = (cast_expression "(int ***)(local_b8 + -0x2d01)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(local_b8 + -0x2d01)" ( (binary_expression "local_b8 + -0x2d01" identifier + number_literal) )))) ;) (expression_statement "local_b4 = (uint ***)(local_e4 - 1);" (assignment_expression "local_b4 = (uint ***)(local_e4 - 1)" identifier = (cast_expression "(uint ***)(local_e4 - 1)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(local_e4 - 1)" ( (binary_expression "local_e4 - 1" identifier - number_literal) )))) ;) (expression_statement "local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);" (assignment_expression "local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0)" identifier = (binary_expression "(local_e0 - 1) + (uint)(local_e4 != 0)" (parenthesized_expression "(local_e0 - 1)" ( (binary_expression "local_e0 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_e4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) ))))) ;) (expression_statement "local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;" (assignment_expression "local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4" identifier = (binary_expression "local_b0 & local_e0 | (uint)local_b4 & local_e4" (binary_expression "local_b0 & local_e0" identifier & identifier) | (binary_expression "(uint)local_b4 & local_e4" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier))) ;) (expression_statement "local_11c = (int)local_b8 + -0xeb73d;" (assignment_expression "local_11c = (int)local_b8 + -0xeb73d" identifier = (binary_expression "(int)local_b8 + -0xeb73d" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_e8 = (uint **)local_11c;" (assignment_expression "local_e8 = (uint **)local_11c" identifier = (cast_expression "(uint **)local_11c" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (do_statement "do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  }" { (expression_statement "ppuVar5 = local_b8;" (assignment_expression "ppuVar5 = local_b8" identifier = identifier) ;) (expression_statement "local_d4._0_4_ = (int ****)*local_d8;" (assignment_expression "local_d4._0_4_ = (int ****)*local_d8" (field_expression "local_d4._0_4_" identifier . field_identifier) = (cast_expression "(int ****)*local_d8" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*local_d8" * identifier))) ;) (expression_statement "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);" (assignment_expression "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4)" identifier = (call_expression "CONCAT44(local_d4._4_4_,(int ****)local_d4)" identifier (argument_list "(local_d4._4_4_,(int ****)local_d4)" ( (field_expression "local_d4._4_4_" identifier . field_identifier) , (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) )))) ;) (expression_statement "ppppiVar24 = (int ****)local_d8[-1];" (assignment_expression "ppppiVar24 = (int ****)local_d8[-1]" identifier = (cast_expression "(int ****)local_d8[-1]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_d8[-1]" identifier [ number_literal ]))) ;) (if_statement "if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }" if (parenthesized_expression "((int ****)local_d4 != ppppiVar24)" ( (binary_expression "(int ****)local_d4 != ppppiVar24" (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != identifier) )) (compound_statement "{\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }" { (if_statement "if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }" { (expression_statement "*(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;" (assignment_expression "*(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65" (pointer_expression "*(undefined ***)((int)piVar27 + -8)" * (cast_expression "(undefined ***)((int)piVar27 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_b8 + -0x3dd65" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = 0x6ed" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)ppuVar5 + -0xf7f6d" (cast_expression "(int)ppuVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;" (assignment_expression "*(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519" (pointer_expression "*(undefined1 **)((int)piVar27 + -0x14)" * (cast_expression "(undefined1 **)((int)piVar27 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_00161519" & identifier)) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);" (assignment_expression "iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" identifier = (pointer_expression "*(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" * (cast_expression "(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" ( (binary_expression "(int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c" (binary_expression "(int)local_ec * 0x20 + *(int *)(param_1 + 0x30)" (binary_expression "(int)local_ec * 0x20" (cast_expression "(int)local_ec" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar28 = (undefined1 *)piVar27;" (assignment_expression "puVar28 = (undefined1 *)piVar27" identifier = (cast_expression "(undefined1 *)piVar27" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }" if (parenthesized_expression "(iVar21 != 0 || iVar13 != 0)" ( (binary_expression "iVar21 != 0 || iVar13 != 0" (binary_expression "iVar21 != 0" identifier != number_literal) || (binary_expression "iVar13 != 0" identifier != number_literal)) )) (compound_statement "{\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }" { (expression_statement "iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;" (assignment_expression "iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24" identifier = (binary_expression "(int)(int ****)local_d4 - (int)ppppiVar24" (cast_expression "(int)(int ****)local_d4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) - (cast_expression "(int)ppppiVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_fc = iVar13;" (assignment_expression "local_fc = iVar13" identifier = identifier) ;) (expression_statement "local_f8 = iVar21;" (assignment_expression "local_f8 = iVar21" identifier = identifier) ;) (if_statement "if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }" if (parenthesized_expression "(0x7fffffc0 < iVar29)" ( (binary_expression "0x7fffffc0 < iVar29" number_literal < identifier) )) (compound_statement "{\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }" { (expression_statement "iVar29 = 0x1ffffff;" (assignment_expression "iVar29 = 0x1ffffff" identifier = number_literal) ;) (labeled_statement "LAB_001609ce:\n          local_100 = (int)local_e8;" statement_identifier : (expression_statement "local_100 = (int)local_e8;" (assignment_expression "local_100 = (int)local_e8" identifier = (cast_expression "(int)local_e8" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (labeled_statement "LAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;" statement_identifier : (expression_statement "*(uint ***)((int)piVar27 + -0xc) = local_e8;" (assignment_expression "*(uint ***)((int)piVar27 + -0xc) = local_e8" (pointer_expression "*(uint ***)((int)piVar27 + -0xc)" * (cast_expression "(uint ***)((int)piVar27 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6)" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" * (cast_expression "(int *****)((int)piVar27 + -0x10)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int ****)(iVar29 << 6)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar29 << 6)" ( (binary_expression "iVar29 << 6" identifier << number_literal) )))) ;) (expression_statement "local_b4 = (uint ***)(iVar29 << 6);" (assignment_expression "local_b4 = (uint ***)(iVar29 << 6)" identifier = (cast_expression "(uint ***)(iVar29 << 6)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar29 << 6)" ( (binary_expression "iVar29 << 6" identifier << number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160a08" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppppiVar17 = (int ****)FUN_001e51a0();" (assignment_expression "ppppiVar17 = (int ****)FUN_001e51a0()" identifier = (cast_expression "(int ****)FUN_001e51a0()" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_001e51a0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pppuVar22 = local_b4;" (assignment_expression "pppuVar22 = local_b4" identifier = identifier) ;) (if_statement "if (ppppiVar17 == (int ****)0x0) break;" if (parenthesized_expression "(ppppiVar17 == (int ****)0x0)" ( (binary_expression "ppppiVar17 == (int ****)0x0" identifier == (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_108 = (uint ***)(ppppiVar24 + 8);" (assignment_expression "local_108 = (uint ***)(ppppiVar24 + 8)" identifier = (cast_expression "(uint ***)(ppppiVar24 + 8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(ppppiVar24 + 8)" ( (binary_expression "ppppiVar24 + 8" identifier + number_literal) )))) ;) (expression_statement "local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);" (assignment_expression "local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4)" identifier = (cast_expression "(uint ***)((int)ppppiVar17 + (int)local_b4)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppppiVar17 + (int)local_b4)" ( (binary_expression "(int)ppppiVar17 + (int)local_b4" (cast_expression "(int)ppppiVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*ppppiVar17 = *ppppiVar24;" (assignment_expression "*ppppiVar17 = *ppppiVar24" (pointer_expression "*ppppiVar17" * identifier) = (pointer_expression "*ppppiVar24" * identifier)) ;) (expression_statement "ppppiVar17[1] = ppppiVar24[1];" (assignment_expression "ppppiVar17[1] = ppppiVar24[1]" (subscript_expression "ppppiVar17[1]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[1]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[2] = ppppiVar24[2];" (assignment_expression "ppppiVar17[2] = ppppiVar24[2]" (subscript_expression "ppppiVar17[2]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[2]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[3] = ppppiVar24[3];" (assignment_expression "ppppiVar17[3] = ppppiVar24[3]" (subscript_expression "ppppiVar17[3]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[3]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[4] = ppppiVar24[4];" (assignment_expression "ppppiVar17[4] = ppppiVar24[4]" (subscript_expression "ppppiVar17[4]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[4]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[5] = ppppiVar24[5];" (assignment_expression "ppppiVar17[5] = ppppiVar24[5]" (subscript_expression "ppppiVar17[5]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[5]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19 = ppppiVar17 + 8;" (assignment_expression "ppppiVar19 = ppppiVar17 + 8" identifier = (binary_expression "ppppiVar17 + 8" identifier + number_literal)) ;) (expression_statement "ppppiVar17[6] = (int ***)ppppiVar19;" (assignment_expression "ppppiVar17[6] = (int ***)ppppiVar19" (subscript_expression "ppppiVar17[6]" identifier [ number_literal ]) = (cast_expression "(int ***)ppppiVar19" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }" if (parenthesized_expression "((uint ***)ppppiVar24[6] == local_108)" ( (binary_expression "(uint ***)ppppiVar24[6] == local_108" (cast_expression "(uint ***)ppppiVar24[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "ppppiVar24[6]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }" { (expression_statement "ppppiVar17[8] = ppppiVar24[8];" (assignment_expression "ppppiVar17[8] = ppppiVar24[8]" (subscript_expression "ppppiVar17[8]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[8]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[9] = ppppiVar24[9];" (assignment_expression "ppppiVar17[9] = ppppiVar24[9]" (subscript_expression "ppppiVar17[9]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[9]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[10] = ppppiVar24[10];" (assignment_expression "ppppiVar17[10] = ppppiVar24[10]" (subscript_expression "ppppiVar17[10]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[10]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[0xb] = ppppiVar24[0xb];" (assignment_expression "ppppiVar17[0xb] = ppppiVar24[0xb]" (subscript_expression "ppppiVar17[0xb]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[0xb]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }" else (compound_statement "{\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }" { (expression_statement "ppppiVar17[6] = ppppiVar24[6];" (assignment_expression "ppppiVar17[6] = ppppiVar24[6]" (subscript_expression "ppppiVar17[6]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[6]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[8] = ppppiVar24[8];" (assignment_expression "ppppiVar17[8] = ppppiVar24[8]" (subscript_expression "ppppiVar17[8]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[8]" identifier [ number_literal ])) ;) }))) (expression_statement "pppiVar18 = ppppiVar24[0xd];" (assignment_expression "pppiVar18 = ppppiVar24[0xd]" identifier = (subscript_expression "ppppiVar24[0xd]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[7] = ppppiVar24[7];" (assignment_expression "ppppiVar17[7] = ppppiVar24[7]" (subscript_expression "ppppiVar17[7]" identifier [ number_literal ]) = (subscript_expression "ppppiVar24[7]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar24[7] = (int ***)0x0;" (assignment_expression "ppppiVar24[7] = (int ***)0x0" (subscript_expression "ppppiVar24[7]" identifier [ number_literal ]) = (cast_expression "(int ***)0x0" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "ppppiVar24[6] = (int ***)local_108;" (assignment_expression "ppppiVar24[6] = (int ***)local_108" (subscript_expression "ppppiVar24[6]" identifier [ number_literal ]) = (cast_expression "(int ***)local_108" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "pppiVar4 = ppppiVar24[0xc];" (assignment_expression "pppiVar4 = ppppiVar24[0xc]" identifier = (subscript_expression "ppppiVar24[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(ppppiVar24 + 8) = 0;" (assignment_expression "*(undefined1 *)(ppppiVar24 + 8) = 0" (pointer_expression "*(undefined1 *)(ppppiVar24 + 8)" * (cast_expression "(undefined1 *)(ppppiVar24 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppiVar24 + 8)" ( (binary_expression "ppppiVar24 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "ppppiVar17[0xd] = pppiVar18;" (assignment_expression "ppppiVar17[0xd] = pppiVar18" (subscript_expression "ppppiVar17[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppiVar18 = ppppiVar24[0xf];" (assignment_expression "pppiVar18 = ppppiVar24[0xf]" identifier = (subscript_expression "ppppiVar24[0xf]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[0xc] = pppiVar4;" (assignment_expression "ppppiVar17[0xc] = pppiVar4" (subscript_expression "ppppiVar17[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppiVar4 = ppppiVar24[0xe];" (assignment_expression "pppiVar4 = ppppiVar24[0xe]" identifier = (subscript_expression "ppppiVar24[0xe]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar17[0xf] = pppiVar18;" (assignment_expression "ppppiVar17[0xf] = pppiVar18" (subscript_expression "ppppiVar17[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppiVar17[0xe] = pppiVar4;" (assignment_expression "ppppiVar17[0xe] = pppiVar4" (subscript_expression "ppppiVar17[0xe]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }" if (parenthesized_expression "((int ****)local_b4 == ppppiVar17 + 0x10)" ( (binary_expression "(int ****)local_b4 == ppppiVar17 + 0x10" (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (binary_expression "ppppiVar17 + 0x10" identifier + number_literal)) )) (compound_statement "{\n            local_bc = (uint ***)ppppiVar17;\n          }" { (expression_statement "local_bc = (uint ***)ppppiVar17;" (assignment_expression "local_bc = (uint ***)ppppiVar17" identifier = (cast_expression "(uint ***)ppppiVar17" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) }) (else_clause "else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }" else (compound_statement "{\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }" { (expression_statement "local_118 = iVar29;" (assignment_expression "local_118 = iVar29" identifier = identifier) ;) (expression_statement "ppppiVar1 = (int ****)(pppuVar22 + -8);" (assignment_expression "ppppiVar1 = (int ****)(pppuVar22 + -8)" identifier = (cast_expression "(int ****)(pppuVar22 + -8)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(pppuVar22 + -8)" ( (binary_expression "pppuVar22 + -8" identifier + number_literal) )))) ;) (do_statement "do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));" do (compound_statement "{\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            }" { (expression_statement "ppppiVar19[8] = ppppiVar19[-8];" (assignment_expression "ppppiVar19[8] = ppppiVar19[-8]" (subscript_expression "ppppiVar19[8]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-8]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[9] = ppppiVar19[-7];" (assignment_expression "ppppiVar19[9] = ppppiVar19[-7]" (subscript_expression "ppppiVar19[9]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-7]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[10] = ppppiVar19[-6];" (assignment_expression "ppppiVar19[10] = ppppiVar19[-6]" (subscript_expression "ppppiVar19[10]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-6]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0xb] = ppppiVar19[-5];" (assignment_expression "ppppiVar19[0xb] = ppppiVar19[-5]" (subscript_expression "ppppiVar19[0xb]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-5]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0xc] = ppppiVar19[-4];" (assignment_expression "ppppiVar19[0xc] = ppppiVar19[-4]" (subscript_expression "ppppiVar19[0xc]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-4]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0xd] = ppppiVar19[-3];" (assignment_expression "ppppiVar19[0xd] = ppppiVar19[-3]" (subscript_expression "ppppiVar19[0xd]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-3]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar2 = ppppiVar19 + 0x10;" (assignment_expression "ppppiVar2 = ppppiVar19 + 0x10" identifier = (binary_expression "ppppiVar19 + 0x10" identifier + number_literal)) ;) (expression_statement "ppppiVar19[0xe] = (int ***)ppppiVar2;" (assignment_expression "ppppiVar19[0xe] = (int ***)ppppiVar2" (subscript_expression "ppppiVar19[0xe]" identifier [ number_literal ]) = (cast_expression "(int ***)ppppiVar2" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }" if (parenthesized_expression "(ppppiVar19 == (int ****)ppppiVar19[-2])" ( (binary_expression "ppppiVar19 == (int ****)ppppiVar19[-2]" identifier == (cast_expression "(int ****)ppppiVar19[-2]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppiVar19[-2]" identifier [ number_literal ]))) )) (compound_statement "{\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }" { (expression_statement "ppppiVar19[0x10] = *ppppiVar19;" (assignment_expression "ppppiVar19[0x10] = *ppppiVar19" (subscript_expression "ppppiVar19[0x10]" identifier [ number_literal ]) = (pointer_expression "*ppppiVar19" * identifier)) ;) (expression_statement "ppppiVar19[0x11] = ppppiVar19[1];" (assignment_expression "ppppiVar19[0x11] = ppppiVar19[1]" (subscript_expression "ppppiVar19[0x11]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[1]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0x12] = ppppiVar19[2];" (assignment_expression "ppppiVar19[0x12] = ppppiVar19[2]" (subscript_expression "ppppiVar19[0x12]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[2]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0x13] = ppppiVar19[3];" (assignment_expression "ppppiVar19[0x13] = ppppiVar19[3]" (subscript_expression "ppppiVar19[0x13]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }" else (compound_statement "{\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }" { (expression_statement "ppppiVar19[0xe] = ppppiVar19[-2];" (assignment_expression "ppppiVar19[0xe] = ppppiVar19[-2]" (subscript_expression "ppppiVar19[0xe]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[-2]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0x10] = *ppppiVar19;" (assignment_expression "ppppiVar19[0x10] = *ppppiVar19" (subscript_expression "ppppiVar19[0x10]" identifier [ number_literal ]) = (pointer_expression "*ppppiVar19" * identifier)) ;) }))) (expression_statement "pppiVar18 = ppppiVar19[-1];" (assignment_expression "pppiVar18 = ppppiVar19[-1]" identifier = (subscript_expression "ppppiVar19[-1]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[-2] = (int ***)ppppiVar19;" (assignment_expression "ppppiVar19[-2] = (int ***)ppppiVar19" (subscript_expression "ppppiVar19[-2]" identifier [ number_literal ]) = (cast_expression "(int ***)ppppiVar19" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "ppppiVar19[-1] = (int ***)0x0;" (assignment_expression "ppppiVar19[-1] = (int ***)0x0" (subscript_expression "ppppiVar19[-1]" identifier [ number_literal ]) = (cast_expression "(int ***)0x0" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "ppppiVar19[0xf] = pppiVar18;" (assignment_expression "ppppiVar19[0xf] = pppiVar18" (subscript_expression "ppppiVar19[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppiVar19[0x15] = ppppiVar19[5];" (assignment_expression "ppppiVar19[0x15] = ppppiVar19[5]" (subscript_expression "ppppiVar19[0x15]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[5]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0x14] = ppppiVar19[4];" (assignment_expression "ppppiVar19[0x14] = ppppiVar19[4]" (subscript_expression "ppppiVar19[0x14]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)ppppiVar19 = 0;" (assignment_expression "*(undefined1 *)ppppiVar19 = 0" (pointer_expression "*(undefined1 *)ppppiVar19" * (cast_expression "(undefined1 *)ppppiVar19" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "ppppiVar19[0x16] = ppppiVar19[6];" (assignment_expression "ppppiVar19[0x16] = ppppiVar19[6]" (subscript_expression "ppppiVar19[0x16]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[6]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19[0x17] = ppppiVar19[7];" (assignment_expression "ppppiVar19[0x17] = ppppiVar19[7]" (subscript_expression "ppppiVar19[0x17]" identifier [ number_literal ]) = (subscript_expression "ppppiVar19[7]" identifier [ number_literal ])) ;) (expression_statement "ppppiVar19 = ppppiVar2;" (assignment_expression "ppppiVar19 = ppppiVar2" identifier = identifier) ;) }) while (parenthesized_expression "(ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17))" ( (binary_expression "ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17)" identifier != (cast_expression "(int ****)((int)ppppiVar1 + (int)ppppiVar17)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppiVar1 + (int)ppppiVar17)" ( (binary_expression "(int)ppppiVar1 + (int)ppppiVar17" (cast_expression "(int)ppppiVar1" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppiVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) ;) (expression_statement "local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);" (assignment_expression "local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10)" identifier = (cast_expression "(uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10)" ( (binary_expression "ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10" identifier + (binary_expression "(((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10" (parenthesized_expression "(((uint)(pppuVar22 + -0x20) >> 6) + 1)" ( (binary_expression "((uint)(pppuVar22 + -0x20) >> 6) + 1" (parenthesized_expression "((uint)(pppuVar22 + -0x20) >> 6)" ( (binary_expression "(uint)(pppuVar22 + -0x20) >> 6" (call_expression "(uint)(pppuVar22 + -0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pppuVar22 + -0x20)" ( (binary_expression "pppuVar22 + -0x20" identifier + number_literal) ))) >> number_literal) )) + number_literal) )) * number_literal)) )))) ;) (expression_statement "ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);" (assignment_expression "ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17)" identifier = (cast_expression "(int ****)((int)ppppiVar1 + (int)ppppiVar17)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppiVar1 + (int)ppppiVar17)" ( (binary_expression "(int)ppppiVar1 + (int)ppppiVar17" (cast_expression "(int)ppppiVar1" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppiVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (expression_statement "*ppppiVar24 = (int ***)*local_bc;" (assignment_expression "*ppppiVar24 = (int ***)*local_bc" (pointer_expression "*ppppiVar24" * identifier) = (cast_expression "(int ***)*local_bc" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*local_bc" * identifier))) ;) (expression_statement "ppppiVar24[1] = (int ***)local_bc[1];" (assignment_expression "ppppiVar24[1] = (int ***)local_bc[1]" (subscript_expression "ppppiVar24[1]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[1]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[1]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[2] = (int ***)local_bc[2];" (assignment_expression "ppppiVar24[2] = (int ***)local_bc[2]" (subscript_expression "ppppiVar24[2]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[2]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[2]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[3] = (int ***)local_bc[3];" (assignment_expression "ppppiVar24[3] = (int ***)local_bc[3]" (subscript_expression "ppppiVar24[3]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[3]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[3]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[4] = (int ***)local_bc[4];" (assignment_expression "ppppiVar24[4] = (int ***)local_bc[4]" (subscript_expression "ppppiVar24[4]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[4]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[4]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[5] = (int ***)local_bc[5];" (assignment_expression "ppppiVar24[5] = (int ***)local_bc[5]" (subscript_expression "ppppiVar24[5]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[5]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[5]" identifier [ number_literal ]))) ;) (expression_statement "local_104 = (uint ***)ppppiVar24[6];" (assignment_expression "local_104 = (uint ***)ppppiVar24[6]" identifier = (cast_expression "(uint ***)ppppiVar24[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "ppppiVar24[6]" identifier [ number_literal ]))) ;) (expression_statement "local_10c = (uint ***)local_bc[6];" (assignment_expression "local_10c = (uint ***)local_bc[6]" identifier = (cast_expression "(uint ***)local_bc[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[6]" identifier [ number_literal ]))) ;) (if_statement "if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }" if (parenthesized_expression "(ppppiVar19 == (int ****)local_10c)" ( (binary_expression "ppppiVar19 == (int ****)local_10c" identifier == (cast_expression "(int ****)local_10c" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) (compound_statement "{\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }" { (expression_statement "pppiVar18 = (int ***)local_bc[7];" (assignment_expression "pppiVar18 = (int ***)local_bc[7]" identifier = (cast_expression "(int ***)local_bc[7]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[7]" identifier [ number_literal ]))) ;) (if_statement "if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }" if (parenthesized_expression "(pppiVar18 != (int ***)0x0)" ( (binary_expression "pppiVar18 != (int ***)0x0" identifier != (cast_expression "(int ***)0x0" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }" { (if_statement "if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }" if (parenthesized_expression "(pppiVar18 == (int ***)0x1)" ( (binary_expression "pppiVar18 == (int ***)0x1" identifier == (cast_expression "(int ***)0x1" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }" { (expression_statement "*(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);" (assignment_expression "*(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8)" (pointer_expression "*(undefined1 *)local_104" * (cast_expression "(undefined1 *)local_104" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)(local_bc + 8)" * (cast_expression "(undefined1 *)(local_bc + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 8)" ( (binary_expression "local_bc + 8" identifier + number_literal) ))))) ;) (expression_statement "local_104 = (uint ***)ppppiVar24[6];" (assignment_expression "local_104 = (uint ***)ppppiVar24[6]" identifier = (cast_expression "(uint ***)ppppiVar24[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "ppppiVar24[6]" identifier [ number_literal ]))) ;) (expression_statement "pppiVar18 = (int ***)local_bc[7];" (assignment_expression "pppiVar18 = (int ***)local_bc[7]" identifier = (cast_expression "(int ***)local_bc[7]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[7]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }" else (compound_statement "{\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }" { (expression_statement "local_108 = (uint ***)ppppiVar24;" (assignment_expression "local_108 = (uint ***)ppppiVar24" identifier = (cast_expression "(uint ***)ppppiVar24" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "*(int ****)((int)piVar27 + -8) = pppiVar18;" (assignment_expression "*(int ****)((int)piVar27 + -8) = pppiVar18" (pointer_expression "*(int ****)((int)piVar27 + -8)" * (cast_expression "(int ****)((int)piVar27 + -8)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0xc) = ppppiVar19;" (assignment_expression "*(int *****)((int)piVar27 + -0xc) = ppppiVar19" (pointer_expression "*(int *****)((int)piVar27 + -0xc)" * (cast_expression "(int *****)((int)piVar27 + -0xc)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_104;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_104" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" * (cast_expression "(uint ****)((int)piVar27 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16134b" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));" (call_expression "memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8))" identifier (argument_list "(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8))" ( (pointer_expression "*(void **)((int)piVar27 + -0x10)" * (cast_expression "(void **)((int)piVar27 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)piVar27 + -0xc)" * (cast_expression "(void **)((int)piVar27 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)piVar27 + -8)" * (cast_expression "(size_t *)((int)piVar27 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pppiVar18 = (int ***)local_bc[7];" (assignment_expression "pppiVar18 = (int ***)local_bc[7]" identifier = (cast_expression "(int ***)local_bc[7]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[7]" identifier [ number_literal ]))) ;) (expression_statement "local_104 = (uint ***)local_108[6];" (assignment_expression "local_104 = (uint ***)local_108[6]" identifier = (cast_expression "(uint ***)local_108[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_108[6]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24 = (int ****)local_108;" (assignment_expression "ppppiVar24 = (int ****)local_108" identifier = (cast_expression "(int ****)local_108" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }))) })) (expression_statement "ppppiVar24[7] = pppiVar18;" (assignment_expression "ppppiVar24[7] = pppiVar18" (subscript_expression "ppppiVar24[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;" (assignment_expression "*(undefined1 *)((int)local_104 + (int)pppiVar18) = 0" (pointer_expression "*(undefined1 *)((int)local_104 + (int)pppiVar18)" * (cast_expression "(undefined1 *)((int)local_104 + (int)pppiVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_104 + (int)pppiVar18)" ( (binary_expression "(int)local_104 + (int)pppiVar18" (cast_expression "(int)local_104" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppiVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "local_104 = (uint ***)local_bc[6];" (assignment_expression "local_104 = (uint ***)local_bc[6]" identifier = (cast_expression "(uint ***)local_bc[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }" else (compound_statement "{\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }" { (if_statement "if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }" if (parenthesized_expression "(local_108 == local_104)" ( (binary_expression "local_108 == local_104" identifier == identifier) )) (compound_statement "{\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }" { (expression_statement "ppppiVar24[6] = (int ***)local_10c;" (assignment_expression "ppppiVar24[6] = (int ***)local_10c" (subscript_expression "ppppiVar24[6]" identifier [ number_literal ]) = (cast_expression "(int ***)local_10c" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "ppppiVar24[7] = (int ***)local_bc[7];" (assignment_expression "ppppiVar24[7] = (int ***)local_bc[7]" (subscript_expression "ppppiVar24[7]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[7]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[7]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[8] = (int ***)local_bc[8];" (assignment_expression "ppppiVar24[8] = (int ***)local_bc[8]" (subscript_expression "ppppiVar24[8]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[8]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[8]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }" else (compound_statement "{\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }" { (expression_statement "local_108 = (uint ***)ppppiVar24[8];" (assignment_expression "local_108 = (uint ***)ppppiVar24[8]" identifier = (cast_expression "(uint ***)ppppiVar24[8]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "ppppiVar24[8]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[6] = (int ***)local_10c;" (assignment_expression "ppppiVar24[6] = (int ***)local_10c" (subscript_expression "ppppiVar24[6]" identifier [ number_literal ]) = (cast_expression "(int ***)local_10c" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "ppppiVar24[7] = (int ***)local_bc[7];" (assignment_expression "ppppiVar24[7] = (int ***)local_bc[7]" (subscript_expression "ppppiVar24[7]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[7]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[7]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[8] = (int ***)local_bc[8];" (assignment_expression "ppppiVar24[8] = (int ***)local_bc[8]" (subscript_expression "ppppiVar24[8]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[8]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[8]" identifier [ number_literal ]))) ;) (if_statement "if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }" if (parenthesized_expression "((int ****)local_104 != (int ****)0x0)" ( (binary_expression "(int ****)local_104 != (int ****)0x0" (cast_expression "(int ****)local_104" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }" { (expression_statement "local_bc[6] = (uint **)local_104;" (assignment_expression "local_bc[6] = (uint **)local_104" (subscript_expression "local_bc[6]" identifier [ number_literal ]) = (cast_expression "(uint **)local_104" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "local_bc[8] = (uint **)local_108;" (assignment_expression "local_bc[8] = (uint **)local_108" (subscript_expression "local_bc[8]" identifier [ number_literal ]) = (cast_expression "(uint **)local_108" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (goto_statement "goto LAB_001611b8;" goto statement_identifier ;) })) }))) (expression_statement "local_bc[6] = (uint **)ppppiVar19;" (assignment_expression "local_bc[6] = (uint **)ppppiVar19" (subscript_expression "local_bc[6]" identifier [ number_literal ]) = (cast_expression "(uint **)ppppiVar19" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "local_104 = (uint ***)ppppiVar19;" (assignment_expression "local_104 = (uint ***)ppppiVar19" identifier = (cast_expression "(uint ***)ppppiVar19" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) }))) (labeled_statement "LAB_001611b8:\n          local_bc[7] = (uint **)0x0;" statement_identifier : (expression_statement "local_bc[7] = (uint **)0x0;" (assignment_expression "local_bc[7] = (uint **)0x0" (subscript_expression "local_bc[7]" identifier [ number_literal ]) = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "*(undefined1 *)local_104 = 0;" (assignment_expression "*(undefined1 *)local_104 = 0" (pointer_expression "*(undefined1 *)local_104" * (cast_expression "(undefined1 *)local_104" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pppiVar18 = (int ***)local_bc[0xd];" (assignment_expression "pppiVar18 = (int ***)local_bc[0xd]" identifier = (cast_expression "(int ***)local_bc[0xd]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[0xd]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[0xc] = (int ***)local_bc[0xc];" (assignment_expression "ppppiVar24[0xc] = (int ***)local_bc[0xc]" (subscript_expression "ppppiVar24[0xc]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[0xc]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[0xc]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[0xd] = pppiVar18;" (assignment_expression "ppppiVar24[0xd] = pppiVar18" (subscript_expression "ppppiVar24[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppiVar18 = (int ***)local_bc[0xe];" (assignment_expression "pppiVar18 = (int ***)local_bc[0xe]" identifier = (cast_expression "(int ***)local_bc[0xe]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[0xe]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[0xf] = (int ***)local_bc[0xf];" (assignment_expression "ppppiVar24[0xf] = (int ***)local_bc[0xf]" (subscript_expression "ppppiVar24[0xf]" identifier [ number_literal ]) = (cast_expression "(int ***)local_bc[0xf]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_bc[0xf]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar24[0xe] = pppiVar18;" (assignment_expression "ppppiVar24[0xe] = pppiVar18" (subscript_expression "ppppiVar24[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int *)((int)piVar27 + -0xc) = local_f8;" (assignment_expression "*(int *)((int)piVar27 + -0xc) = local_f8" (pointer_expression "*(int *)((int)piVar27 + -0xc)" * (cast_expression "(int *)((int)piVar27 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar27 + -0x10) = local_fc;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = local_fc" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar27 + -0x14) = iVar29;" (assignment_expression "*(int *)((int)piVar27 + -0x14) = iVar29" (pointer_expression "*(int *)((int)piVar27 + -0x14)" * (cast_expression "(int *)((int)piVar27 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x18) = ppppiVar17;" (assignment_expression "*(int *****)((int)piVar27 + -0x18) = ppppiVar17" (pointer_expression "*(int *****)((int)piVar27 + -0x18)" * (cast_expression "(int *****)((int)piVar27 + -0x18)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x18)" ( (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;" (assignment_expression "*(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4" (pointer_expression "*(int *****)((int)piVar27 + -0x1c)" * (cast_expression "(int *****)((int)piVar27 + -0x1c)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x1c)" ( (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "*(int *****)((int)piVar27 + -0x20) = ppppiVar24;" (assignment_expression "*(int *****)((int)piVar27 + -0x20) = ppppiVar24" (pointer_expression "*(int *****)((int)piVar27 + -0x20)" * (cast_expression "(int *****)((int)piVar27 + -0x20)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x20)" ( (binary_expression "(int)piVar27 + -0x20" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x24) = 0x161203;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x24) = 0x161203" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x24)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x24)" ( (binary_expression "(int)piVar27 + -0x24" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00167d90();" (call_expression "FUN_00167d90()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00160b99;" goto statement_identifier ;) })) (if_statement "if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }" if (parenthesized_expression "(0 < iVar29)" ( (binary_expression "0 < iVar29" number_literal < identifier) )) (compound_statement "{\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }" { (expression_statement "iVar29 = iVar29 >> 6;" (assignment_expression "iVar29 = iVar29 >> 6" identifier = (binary_expression "iVar29 >> 6" identifier >> number_literal)) ;) (goto_statement "goto LAB_001609ce;" goto statement_identifier ;) })) (expression_statement "local_100 = local_11c;" (assignment_expression "local_100 = local_11c" identifier = identifier) ;) (labeled_statement "LAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;" statement_identifier : (expression_statement "*(int *)((int)piVar27 + -4) = local_f8;" (assignment_expression "*(int *)((int)piVar27 + -4) = local_f8" (pointer_expression "*(int *)((int)piVar27 + -4)" * (cast_expression "(int *)((int)piVar27 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -4)" ( (binary_expression "(int)piVar27 + -4" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)piVar27 + -8) = local_fc;" (assignment_expression "*(int *)((int)piVar27 + -8) = local_fc" (pointer_expression "*(int *)((int)piVar27 + -8)" * (cast_expression "(int *)((int)piVar27 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -8)" ( (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;" (assignment_expression "*(int *****)((int)piVar27 + -0xc) = (int ****)local_d4" (pointer_expression "*(int *****)((int)piVar27 + -0xc)" * (cast_expression "(int *****)((int)piVar27 + -0xc)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "*(int *****)((int)piVar27 + -0x10) = ppppiVar24;" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = ppppiVar24" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" * (cast_expression "(int *****)((int)piVar27 + -0x10)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00165ca0();" (call_expression "FUN_00165ca0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_b4 = (uint ***)0x0;" (assignment_expression "local_b4 = (uint ***)0x0" identifier = (cast_expression "(uint ***)0x0" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "ppppiVar17 = (int ****)0x0;" (assignment_expression "ppppiVar17 = (int ****)0x0" identifier = (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (labeled_statement "LAB_00160b99:\n        ppppiVar24 = ppppiVar17;" statement_identifier : (expression_statement "ppppiVar24 = ppppiVar17;" (assignment_expression "ppppiVar24 = ppppiVar17" identifier = identifier) ;)) (if_statement "if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }" if (parenthesized_expression "((int ****)local_b4 != ppppiVar17)" ( (binary_expression "(int ****)local_b4 != ppppiVar17" (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != identifier) )) (compound_statement "{\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }" { (do_statement "do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);" do (compound_statement "{\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          }" { (if_statement "if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }" if (parenthesized_expression "((int ****)ppppiVar24[6] != ppppiVar24 + 8)" ( (binary_expression "(int ****)ppppiVar24[6] != ppppiVar24 + 8" (cast_expression "(int ****)ppppiVar24[6]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppiVar24[6]" identifier [ number_literal ])) != (binary_expression "ppppiVar24 + 8" identifier + number_literal)) )) (compound_statement "{\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }" { (expression_statement "*(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];" (assignment_expression "*(int ****)((int)piVar27 + -0x10) = ppppiVar24[6]" (pointer_expression "*(int ****)((int)piVar27 + -0x10)" * (cast_expression "(int ****)((int)piVar27 + -0x10)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "ppppiVar24[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppppiVar24 = ppppiVar24 + 0x10;" (assignment_expression "ppppiVar24 = ppppiVar24 + 0x10" identifier = (binary_expression "ppppiVar24 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "((int ****)local_b4 != ppppiVar24)" ( (binary_expression "(int ****)local_b4 != ppppiVar24" (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != identifier) )) ;) })) (expression_statement "*(int *)((int)piVar27 + -0xc) = local_100;" (assignment_expression "*(int *)((int)piVar27 + -0xc) = local_100" (pointer_expression "*(int *)((int)piVar27 + -0xc)" * (cast_expression "(int *)((int)piVar27 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x10) = ppppiVar17;" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = ppppiVar17" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" * (cast_expression "(int *****)((int)piVar27 + -0x10)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160be4" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6d70();" (call_expression "FUN_001e6d70()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);" (assignment_expression "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4)" identifier = (call_expression "CONCAT44(local_d4._4_4_,(int ****)local_d4)" identifier (argument_list "(local_d4._4_4_,(int ****)local_d4)" ( (field_expression "local_d4._4_4_" identifier . field_identifier) , (cast_expression "(int ****)local_d4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) )))) ;) (expression_statement "ppppiVar24 = (int ****)local_d8[-1];" (assignment_expression "ppppiVar24 = (int ****)local_d8[-1]" identifier = (cast_expression "(int ****)local_d8[-1]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_d8[-1]" identifier [ number_literal ]))) ;) (if_statement "if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;" if (parenthesized_expression "((int ****)local_d8[-1] == (int ****)*local_d8)" ( (binary_expression "(int ****)local_d8[-1] == (int ****)*local_d8" (cast_expression "(int ****)local_d8[-1]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_d8[-1]" identifier [ number_literal ])) == (cast_expression "(int ****)*local_d8" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*local_d8" * identifier))) )) (goto_statement "goto LAB_00160c00;" goto statement_identifier ;)) })) (do_statement "do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);" do (compound_statement "{\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      }" { (expression_statement "local_b4 = (uint ***)ppppiVar24;" (assignment_expression "local_b4 = (uint ***)ppppiVar24" identifier = (cast_expression "(uint ***)ppppiVar24" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_74 = (int ***)*local_b4;" (assignment_expression "local_74 = (int ***)*local_b4" identifier = (cast_expression "(int ***)*local_b4" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*local_b4" * identifier))) ;) (expression_statement "local_70 = local_b4[1];" (assignment_expression "local_70 = local_b4[1]" identifier = (subscript_expression "local_b4[1]" identifier [ number_literal ])) ;) (expression_statement "local_6c = local_b4[2];" (assignment_expression "local_6c = local_b4[2]" identifier = (subscript_expression "local_b4[2]" identifier [ number_literal ])) ;) (expression_statement "local_68 = local_b4[3];" (assignment_expression "local_68 = local_b4[3]" identifier = (subscript_expression "local_b4[3]" identifier [ number_literal ])) ;) (expression_statement "local_64 = local_b4[4];" (assignment_expression "local_64 = local_b4[4]" identifier = (subscript_expression "local_b4[4]" identifier [ number_literal ])) ;) (expression_statement "local_60 = local_b4[5];" (assignment_expression "local_60 = local_b4[5]" identifier = (subscript_expression "local_b4[5]" identifier [ number_literal ])) ;) (expression_statement "piVar27 = (int *)puVar28;" (assignment_expression "piVar27 = (int *)puVar28" identifier = (cast_expression "(int *)puVar28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }" if (parenthesized_expression "((int ***)local_70 == (int ***)0x0)" ( (binary_expression "(int ***)local_70 == (int ***)0x0" (cast_expression "(int ***)local_70" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) == (cast_expression "(int ***)0x0" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }" { (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (if_statement "if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }" if (parenthesized_expression "((uint ***)0xfffffffb < local_74)" ( (binary_expression "(uint ***)0xfffffffb < local_74" (cast_expression "(uint ***)0xfffffffb" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal) < identifier) )) (compound_statement "{\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }" { (expression_statement "ppuVar5 = (undefined **)(*local_64)[3];" (assignment_expression "ppuVar5 = (undefined **)(*local_64)[3]" identifier = (cast_expression "(undefined **)(*local_64)[3]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "(*local_64)[3]" (parenthesized_expression "(*local_64)" ( (pointer_expression "*local_64" * identifier) )) [ number_literal ]))) ;) (if_statement "if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }" if (parenthesized_expression "(ppuVar5 != local_b8 + -0xc6e88)" ( (binary_expression "ppuVar5 != local_b8 + -0xc6e88" identifier != (binary_expression "local_b8 + -0xc6e88" identifier + number_literal)) )) (compound_statement "{\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }" { (expression_statement "*(uint ***)(puVar28 + -0x10) = local_64;" (assignment_expression "*(uint ***)(puVar28 + -0x10) = local_64" (pointer_expression "*(uint ***)(puVar28 + -0x10)" * (cast_expression "(uint ***)(puVar28 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x161066;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x161066" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar31 = (*(code *)ppuVar5)();" (assignment_expression "lVar31 = (*(code *)ppuVar5)()" identifier = (call_expression "(*(code *)ppuVar5)()" (parenthesized_expression "(*(code *)ppuVar5)" ( (pointer_expression "*(code *)ppuVar5" * (cast_expression "(code *)ppuVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) (goto_statement "goto LAB_00160fa4;" goto statement_identifier ;) })) (expression_statement "lVar31 = *(longlong *)((int ***)local_64 + 9);" (assignment_expression "lVar31 = *(longlong *)((int ***)local_64 + 9)" identifier = (pointer_expression "*(longlong *)((int ***)local_64 + 9)" * (cast_expression "(longlong *)((int ***)local_64 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int ***)local_64 + 9)" ( (binary_expression "(int ***)local_64 + 9" (cast_expression "(int ***)local_64" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_00160dde;" goto statement_identifier ;) })) (expression_statement "local_bc = (uint ***)&local_74;" (assignment_expression "local_bc = (uint ***)&local_74" identifier = (cast_expression "(uint ***)&local_74" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&local_74" & identifier))) ;) (expression_statement "*(uint ****)(puVar28 + -0x10) = local_bc;" (assignment_expression "*(uint ****)(puVar28 + -0x10) = local_bc" (pointer_expression "*(uint ****)(puVar28 + -0x10)" * (cast_expression "(uint ****)(puVar28 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160fd8;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160fd8" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar30 = FUN_000ede20();" (assignment_expression "lVar30 = FUN_000ede20()" identifier = (call_expression "FUN_000ede20()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" identifier = identifier) ;) (expression_statement "lVar10 = local_cc;" (assignment_expression "lVar10 = local_cc" identifier = identifier) ;) (if_statement "if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;" if (parenthesized_expression "(local_e0 != 0 || local_e4 != 0)" ( (binary_expression "local_e0 != 0 || local_e4 != 0" (binary_expression "local_e0 != 0" identifier != number_literal) || (binary_expression "local_e4 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_00160ffd;" goto statement_identifier ;)) }) (else_clause "else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }" else (compound_statement "{\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }" { (expression_statement "uVar25 = (int)local_70 - 1U >> 5 & 1;" (assignment_expression "uVar25 = (int)local_70 - 1U >> 5 & 1" identifier = (binary_expression "(int)local_70 - 1U >> 5 & 1" (binary_expression "(int)local_70 - 1U >> 5" (binary_expression "(int)local_70 - 1U" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) >> number_literal) & number_literal)) ;) (expression_statement "bVar20 = (byte)((int)local_70 - 1U);" (assignment_expression "bVar20 = (byte)((int)local_70 - 1U)" identifier = (call_expression "(byte)((int)local_70 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((int)local_70 - 1U)" ( (binary_expression "(int)local_70 - 1U" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));" (assignment_expression "lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f))" identifier = (call_expression "CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f))" identifier (argument_list "(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f))" ( (binary_expression "uVar25 << (bVar20 & 0x1f)" identifier << (parenthesized_expression "(bVar20 & 0x1f)" ( (binary_expression "bVar20 & 0x1f" identifier & number_literal) ))) , (binary_expression "(uVar25 ^ 1) << (bVar20 & 0x1f)" (parenthesized_expression "(uVar25 ^ 1)" ( (binary_expression "uVar25 ^ 1" identifier ^ number_literal) )) << (parenthesized_expression "(bVar20 & 0x1f)" ( (binary_expression "bVar20 & 0x1f" identifier & number_literal) ))) )))) ;) (labeled_statement "LAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }" statement_identifier : (if_statement "if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }" if (parenthesized_expression "((uint ***)0xfffffffb < local_74)" ( (binary_expression "(uint ***)0xfffffffb < local_74" (cast_expression "(uint ***)0xfffffffb" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal) < identifier) )) (compound_statement "{\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }" { (labeled_statement "LAB_00160dde:\n            ppuVar11 = local_64;" statement_identifier : (expression_statement "ppuVar11 = local_64;" (assignment_expression "ppuVar11 = local_64" identifier = identifier) ;)) (if_statement "if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }" if (parenthesized_expression "(((uint)local_64[7] & 2) == 0)" ( (binary_expression "((uint)local_64[7] & 2) == 0" (parenthesized_expression "((uint)local_64[7] & 2)" ( (binary_expression "(uint)local_64[7] & 2" (cast_expression "(uint)local_64[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_64[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }" { (expression_statement "ppiVar6 = (int **)*local_64;" (assignment_expression "ppiVar6 = (int **)*local_64" identifier = (cast_expression "(int **)*local_64" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_64" * identifier))) ;) (expression_statement "*(uint ***)(puVar28 + -0x10) = local_64;" (assignment_expression "*(uint ***)(puVar28 + -0x10) = local_64" (pointer_expression "*(uint ***)(puVar28 + -0x10)" * (cast_expression "(uint ***)(puVar28 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = (code *)ppiVar6[0xe];" (assignment_expression "pcVar3 = (code *)ppiVar6[0xe]" identifier = (cast_expression "(code *)ppiVar6[0xe]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar6[0xe]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160ded;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160ded" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) (if_statement "if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }" if (parenthesized_expression "(((uint)ppuVar11[7] & 2) == 0)" ( (binary_expression "((uint)ppuVar11[7] & 2) == 0" (parenthesized_expression "((uint)ppuVar11[7] & 2)" ( (binary_expression "(uint)ppuVar11[7] & 2" (cast_expression "(uint)ppuVar11[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar11[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }" { (expression_statement "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;" (assignment_expression "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a" (pointer_expression "*(undefined ***)(puVar28 + -8)" * (cast_expression "(undefined ***)(puVar28 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -8)" ( (binary_expression "puVar28 + -8" identifier + number_literal) )))) = (binary_expression "local_b8 + -0x3dd6a" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0xc) = 0x163;" (assignment_expression "*(undefined4 *)(puVar28 + -0xc) = 0x163" (pointer_expression "*(undefined4 *)(puVar28 + -0xc)" * (cast_expression "(undefined4 *)(puVar28 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;" (assignment_expression "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55" (pointer_expression "*(undefined ***)(puVar28 + -0x10)" * (cast_expression "(undefined ***)(puVar28 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = (binary_expression "local_b8 + -0x41c55" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x1614f8;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x1614f8" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) })) }))) (expression_statement "local_bc = (uint ***)&local_74;" (assignment_expression "local_bc = (uint ***)&local_74" identifier = (cast_expression "(uint ***)&local_74" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&local_74" & identifier))) ;) (expression_statement "*(uint ****)(puVar28 + -0x10) = local_bc;" (assignment_expression "*(uint ****)(puVar28 + -0x10) = local_bc" (pointer_expression "*(uint ****)(puVar28 + -0x10)" * (cast_expression "(uint ****)(puVar28 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160e12;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160e12" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "lVar30 = FUN_000ede20();" (assignment_expression "lVar30 = FUN_000ede20()" identifier = (call_expression "FUN_000ede20()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }" if (parenthesized_expression "(local_e0 == 0 && local_e4 == 0)" ( (binary_expression "local_e0 == 0 && local_e4 == 0" (binary_expression "local_e0 == 0" identifier == number_literal) && (binary_expression "local_e4 == 0" identifier == number_literal)) )) (compound_statement "{\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }" { (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" identifier = identifier) ;) (expression_statement "lVar10 = local_cc;" (assignment_expression "lVar10 = local_cc" identifier = identifier) ;) (if_statement "if (lVar31 == 0) goto LAB_00160d28;" if (parenthesized_expression "(lVar31 == 0)" ( (binary_expression "lVar31 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00160d28;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }" else (compound_statement "{\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }" { (labeled_statement "LAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);" statement_identifier : (expression_statement "lVar31 = CONCAT44(local_e0,local_e4);" (assignment_expression "lVar31 = CONCAT44(local_e0,local_e4)" identifier = (call_expression "CONCAT44(local_e0,local_e4)" identifier (argument_list "(local_e0,local_e4)" ( identifier , identifier )))) ;)) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (if_statement "if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }" if (parenthesized_expression "(local_f0 != 0)" ( (binary_expression "local_f0 != 0" identifier != number_literal) )) (compound_statement "{\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }" { (expression_statement "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;" (assignment_expression "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e" (pointer_expression "*(undefined ***)(puVar28 + -8)" * (cast_expression "(undefined ***)(puVar28 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -8)" ( (binary_expression "puVar28 + -8" identifier + number_literal) )))) = (binary_expression "local_b8 + -0x3dd6e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0xc) = 0xedf;" (assignment_expression "*(undefined4 *)(puVar28 + -0xc) = 0xedf" (pointer_expression "*(undefined4 *)(puVar28 + -0xc)" * (cast_expression "(undefined4 *)(puVar28 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;" (assignment_expression "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55" (pointer_expression "*(undefined ***)(puVar28 + -0x10)" * (cast_expression "(undefined ***)(puVar28 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = (binary_expression "local_b8 + -0x41c55" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x1614d7;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x1614d7" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint *)(puVar28 + -0xc) = local_e0;" (assignment_expression "*(uint *)(puVar28 + -0xc) = local_e0" (pointer_expression "*(uint *)(puVar28 + -0xc)" * (cast_expression "(uint *)(puVar28 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar28 + -0x10) = local_e4;" (assignment_expression "*(uint *)(puVar28 + -0x10) = local_e4" (pointer_expression "*(uint *)(puVar28 + -0x10)" * (cast_expression "(uint *)(puVar28 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x161027;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x161027" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_70 = (uint **)FUN_0027b5b0();" (assignment_expression "local_70 = (uint **)FUN_0027b5b0()" identifier = (cast_expression "(uint **)FUN_0027b5b0()" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_0027b5b0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" identifier = identifier) ;) }))) (expression_statement "local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);" (assignment_expression "local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20)" (field_expression "local_cc._4_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)lVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar9 >> 0x20)" ( (binary_expression "(ulonglong)lVar9 >> 0x20" (cast_expression "(ulonglong)lVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_cc._0_4_ = (uint)lVar9;" (assignment_expression "local_cc._0_4_ = (uint)lVar9" (field_expression "local_cc._0_4_" identifier . field_identifier) = (cast_expression "(uint)lVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar30 = lVar31 + lVar9 + -1;" (assignment_expression "lVar30 = lVar31 + lVar9 + -1" identifier = (binary_expression "lVar31 + lVar9 + -1" (binary_expression "lVar31 + lVar9" identifier + identifier) + number_literal)) ;) (expression_statement "local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;" (assignment_expression "local_c4._0_4_ = (uint)lVar30 & -(int)lVar31" (field_expression "local_c4._0_4_" identifier . field_identifier) = (binary_expression "(uint)lVar30 & -(int)lVar31" (cast_expression "(uint)lVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar31" - (cast_expression "(int)lVar31" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));" (assignment_expression "local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (field_expression "local_c4._4_4_" identifier . field_identifier) = (binary_expression "(uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (call_expression "(uint)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" ( (binary_expression "(int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)" (cast_expression "(int)((ulonglong)lVar31 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)((int)lVar31 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar31 != 0)" ( (binary_expression "(int)lVar31 != 0" (cast_expression "(int)lVar31" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) ))))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) (expression_statement "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier = (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier (argument_list "(local_c4._4_4_,(uint)local_c4)" ( (field_expression "local_c4._4_4_" identifier . field_identifier) , (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }" if (parenthesized_expression "((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0))" ( (binary_expression "(local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)" (parenthesized_expression "(local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4))" ( (binary_expression "local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)" (binary_expression "local_cc._4_4_ < local_c4._4_4_" (field_expression "local_cc._4_4_" identifier . field_identifier) < (field_expression "local_c4._4_4_" identifier . field_identifier)) || (binary_expression "local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)" (binary_expression "local_cc._4_4_ - local_c4._4_4_" (field_expression "local_cc._4_4_" identifier . field_identifier) - (field_expression "local_c4._4_4_" identifier . field_identifier)) < (call_expression "(uint)((uint)local_cc < (uint)local_c4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)local_cc < (uint)local_c4)" ( (binary_expression "(uint)local_cc < (uint)local_c4" (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) && (parenthesized_expression "(lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)" ( (comma_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier = (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier (argument_list "(local_c4._4_4_,(uint)local_c4)" ( (field_expression "local_c4._4_4_" identifier . field_identifier) , (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) , (binary_expression "*(int *)(param_10 + 4) != 0" (pointer_expression "*(int *)(param_10 + 4)" * (cast_expression "(int *)(param_10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 4)" ( (binary_expression "param_10 + 4" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }" { (expression_statement "local_cc = lVar9;" (assignment_expression "local_cc = lVar9" identifier = identifier) ;) (if_statement "if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }" if (parenthesized_expression "(local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc))" ( (binary_expression "local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)" (binary_expression "local_c4._4_4_ - local_cc._4_4_" (field_expression "local_c4._4_4_" identifier . field_identifier) - (field_expression "local_cc._4_4_" identifier . field_identifier)) != (call_expression "(uint)((uint)local_c4 < (uint)local_cc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)local_c4 < (uint)local_cc)" ( (binary_expression "(uint)local_c4 < (uint)local_cc" (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) )) (compound_statement "{\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }" { (expression_statement "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;" (assignment_expression "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18" (pointer_expression "*(undefined ***)(puVar28 + -8)" * (cast_expression "(undefined ***)(puVar28 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -8)" ( (binary_expression "puVar28 + -8" identifier + number_literal) )))) = (binary_expression "local_b8 + -0x3dd18" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar28 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar28 + -0xc)" * (cast_expression "(undefined4 *)(puVar28 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;" (assignment_expression "*(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7" (pointer_expression "*(int *)(puVar28 + -0x10)" * (cast_expression "(int *)(puVar28 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_b8 + -0x107be7" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x1614b6;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x1614b6" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;" (assignment_expression "*(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc" (pointer_expression "*(uint *)(puVar28 + -4)" * (cast_expression "(uint *)(puVar28 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -4)" ( (binary_expression "puVar28 + -4" identifier + number_literal) )))) = (binary_expression "(uint)local_c4 - (uint)local_cc" (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) - (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "*(int *)(puVar28 + -8) = param_10;" (assignment_expression "*(int *)(puVar28 + -8) = param_10" (pointer_expression "*(int *)(puVar28 + -8)" * (cast_expression "(int *)(puVar28 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -8)" ( (binary_expression "puVar28 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar28 + -0xc) = param_1;" (assignment_expression "*(int *)(puVar28 + -0xc) = param_1" (pointer_expression "*(int *)(puVar28 + -0xc)" * (cast_expression "(int *)(puVar28 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 ***)(puVar28 + -0x10) = &local_5c;" (assignment_expression "*(undefined4 ***)(puVar28 + -0x10) = &local_5c" (pointer_expression "*(undefined4 ***)(puVar28 + -0x10)" * (cast_expression "(undefined4 ***)(puVar28 + -0x10)" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160ec0;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160ec0" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0015b5e0();" (call_expression "FUN_0015b5e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x44;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x44" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" * (cast_expression "(undefined4 *)(puVar28 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160ecf;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160ecf" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" * (cast_expression "(undefined4 *)(puVar28 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x18)" ( (binary_expression "puVar28 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppiVar18 = (int ***)FUN_001e5200();" (assignment_expression "pppiVar18 = (int ***)FUN_001e5200()" identifier = (cast_expression "(int ***)FUN_001e5200()" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (call_expression "FUN_001e5200()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pppiVar18[1] = (int **)0x0;" (assignment_expression "pppiVar18[1] = (int **)0x0" (subscript_expression "pppiVar18[1]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[2] = (int **)0x0;" (assignment_expression "pppiVar18[2] = (int **)0x0" (subscript_expression "pppiVar18[2]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[3] = (int **)local_58;" (assignment_expression "pppiVar18[3] = (int **)local_58" (subscript_expression "pppiVar18[3]" identifier [ number_literal ]) = (cast_expression "(int **)local_58" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pppiVar18[8] = (int **)0x0;" (assignment_expression "pppiVar18[8] = (int **)0x0" (subscript_expression "pppiVar18[8]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[9] = (int **)0x0;" (assignment_expression "pppiVar18[9] = (int **)0x0" (subscript_expression "pppiVar18[9]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[10] = (int **)0x0;" (assignment_expression "pppiVar18[10] = (int **)0x0" (subscript_expression "pppiVar18[10]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[4] = (int **)0x0;" (assignment_expression "pppiVar18[4] = (int **)0x0" (subscript_expression "pppiVar18[4]" identifier [ number_literal ]) = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[5] = (int **)0xffffffff;" (assignment_expression "pppiVar18[5] = (int **)0xffffffff" (subscript_expression "pppiVar18[5]" identifier [ number_literal ]) = (cast_expression "(int **)0xffffffff" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppiVar18[6] = (int **)0xffffffff;" (assignment_expression "pppiVar18[6] = (int **)0xffffffff" (subscript_expression "pppiVar18[6]" identifier [ number_literal ]) = (cast_expression "(int **)0xffffffff" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(pppiVar18 + 7)" * (cast_expression "(byte *)(pppiVar18 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppiVar18 + 7)" ( (binary_expression "pppiVar18 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppiVar18 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(pppiVar18 + 7) & 0xe0" (pointer_expression "*(byte *)(pppiVar18 + 7)" * (cast_expression "(byte *)(pppiVar18 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppiVar18 + 7)" ( (binary_expression "pppiVar18 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*pppiVar18 = (int **)(local_dc + 2);" (assignment_expression "*pppiVar18 = (int **)(local_dc + 2)" (pointer_expression "*pppiVar18" * identifier) = (cast_expression "(int **)(local_dc + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_dc + 2)" ( (binary_expression "local_dc + 2" identifier + number_literal) )))) ;) (expression_statement "pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);" (assignment_expression "pppiVar18[0xb] = (int **)(pppiVar18 + 0xd)" (subscript_expression "pppiVar18[0xb]" identifier [ number_literal ]) = (cast_expression "(int **)(pppiVar18 + 0xd)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pppiVar18 + 0xd)" ( (binary_expression "pppiVar18 + 0xd" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar28 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar28 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar28 + -8)" * (cast_expression "(undefined4 *)(puVar28 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -8)" ( (binary_expression "puVar28 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;" (assignment_expression "*(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c" (pointer_expression "*(int *)(puVar28 + -0xc)" * (cast_expression "(int *)(puVar28 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = (binary_expression "(int)local_58 + (int)local_5c" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 **)(puVar28 + -0x10) = local_5c;" (assignment_expression "*(undefined4 **)(puVar28 + -0x10) = local_5c" (pointer_expression "*(undefined4 **)(puVar28 + -0x10)" * (cast_expression "(undefined4 **)(puVar28 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;" (assignment_expression "*(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb" (pointer_expression "*(int ****)(puVar28 + -0x14)" * (cast_expression "(int ****)(puVar28 + -0x14)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = (binary_expression "pppiVar18 + 0xb" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160f42;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160f42" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" * (cast_expression "(undefined4 *)(puVar28 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x18)" ( (binary_expression "puVar28 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int ****)(puVar28 + -0x10) = pppiVar18;" (assignment_expression "*(int ****)(puVar28 + -0x10) = pppiVar18" (pointer_expression "*(int ****)(puVar28 + -0x10)" * (cast_expression "(int ****)(puVar28 + -0x10)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar28 + -0x14) = param_4;" (assignment_expression "*(int *)(puVar28 + -0x14) = param_4" (pointer_expression "*(int *)(puVar28 + -0x14)" * (cast_expression "(int *)(puVar28 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160f4d;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160f4d" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" * (cast_expression "(undefined4 *)(puVar28 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x18)" ( (binary_expression "puVar28 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000f2600();" (call_expression "FUN_000f2600()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_a4 = (uint **)pppiVar18;" (assignment_expression "local_a4 = (uint **)pppiVar18" identifier = (cast_expression "(uint **)pppiVar18" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }" if (parenthesized_expression "(*(char *)(param_3 + 0x1d4) != '\0')" ( (binary_expression "*(char *)(param_3 + 0x1d4) != '\0'" (pointer_expression "*(char *)(param_3 + 0x1d4)" * (cast_expression "(char *)(param_3 + 0x1d4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1d4)" ( (binary_expression "param_3 + 0x1d4" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }" { (expression_statement "puVar14 = *(undefined4 **)(param_3 + 0x1dc);" (assignment_expression "puVar14 = *(undefined4 **)(param_3 + 0x1dc)" identifier = (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" * (cast_expression "(undefined4 **)(param_3 + 0x1dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1dc)" ( (binary_expression "param_3 + 0x1dc" identifier + number_literal) ))))) ;) (if_statement "if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }" if (parenthesized_expression "(puVar14 == *(undefined4 **)(param_3 + 0x1e0))" ( (binary_expression "puVar14 == *(undefined4 **)(param_3 + 0x1e0)" identifier == (pointer_expression "*(undefined4 **)(param_3 + 0x1e0)" * (cast_expression "(undefined4 **)(param_3 + 0x1e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1e0)" ( (binary_expression "param_3 + 0x1e0" identifier + number_literal) ))))) )) (compound_statement "{\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }" { (expression_statement "*(uint ****)(puVar28 + -0xc) = &local_a4;" (assignment_expression "*(uint ****)(puVar28 + -0xc) = &local_a4" (pointer_expression "*(uint ****)(puVar28 + -0xc)" * (cast_expression "(uint ****)(puVar28 + -0xc)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar28 + -0xc)" ( (binary_expression "puVar28 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_a4" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar28 + -0x10) = puVar14;" (assignment_expression "*(undefined4 **)(puVar28 + -0x10) = puVar14" (pointer_expression "*(undefined4 **)(puVar28 + -0x10)" * (cast_expression "(undefined4 **)(puVar28 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -0x10)" ( (binary_expression "puVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar28 + -0x14) = param_3 + 0x1d8;" (assignment_expression "*(int *)(puVar28 + -0x14) = param_3 + 0x1d8" (pointer_expression "*(int *)(puVar28 + -0x14)" * (cast_expression "(int *)(puVar28 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = (binary_expression "param_3 + 0x1d8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x161091;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x161091" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" * (cast_expression "(undefined4 *)(puVar28 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x18)" ( (binary_expression "puVar28 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00163100();" (call_expression "FUN_00163100()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }" else (compound_statement "{\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }" { (expression_statement "*puVar14 = pppiVar18;" (assignment_expression "*puVar14 = pppiVar18" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;" (assignment_expression "*(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1" (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" * (cast_expression "(undefined4 **)(param_3 + 0x1dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1dc)" ( (binary_expression "param_3 + 0x1dc" identifier + number_literal) )))) = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) }))) })) (expression_statement "piVar27 = (int *)(puVar28 + -4);" (assignment_expression "piVar27 = (int *)(puVar28 + -4)" identifier = (cast_expression "(int *)(puVar28 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -4)" ( (binary_expression "puVar28 + -4" identifier + number_literal) )))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" identifier = identifier) ;) (expression_statement "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier = (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier (argument_list "(local_c4._4_4_,(uint)local_c4)" ( (field_expression "local_c4._4_4_" identifier . field_identifier) , (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }" if (parenthesized_expression "(local_5c != &local_54)" ( (binary_expression "local_5c != &local_54" identifier != (pointer_expression "&local_54" & identifier)) )) (compound_statement "{\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }" { (expression_statement "*(undefined4 **)(puVar28 + -0x14) = local_5c;" (assignment_expression "*(undefined4 **)(puVar28 + -0x14) = local_5c" (pointer_expression "*(undefined4 **)(puVar28 + -0x14)" * (cast_expression "(undefined4 **)(puVar28 + -0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -0x14)" ( (binary_expression "puVar28 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160f83;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160f83" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" * (cast_expression "(undefined4 *)(puVar28 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x18)" ( (binary_expression "puVar28 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar27 = (int *)(puVar28 + -4);" (assignment_expression "piVar27 = (int *)(puVar28 + -4)" identifier = (cast_expression "(int *)(puVar28 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -4)" ( (binary_expression "puVar28 + -4" identifier + number_literal) )))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" identifier = identifier) ;) (expression_statement "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier = (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" identifier (argument_list "(local_c4._4_4_,(uint)local_c4)" ( (field_expression "local_c4._4_4_" identifier . field_identifier) , (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) })) })) }))) (labeled_statement "LAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;" statement_identifier : (expression_statement "*(uint ****)((int)piVar27 + -0xc) = local_bc;" (assignment_expression "*(uint ****)((int)piVar27 + -0xc) = local_bc" (pointer_expression "*(uint ****)((int)piVar27 + -0xc)" * (cast_expression "(uint ****)((int)piVar27 + -0xc)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar27 + -0xc)" ( (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)piVar27 + -0x10) = param_4;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = param_4" (pointer_expression "*(int *)((int)piVar27 + -0x10)" * (cast_expression "(int *)((int)piVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "local_cc = lVar9;" (assignment_expression "local_cc = lVar9" identifier = identifier) ;) (expression_statement "local_c4 = lVar10;" (assignment_expression "local_c4 = lVar10" identifier = identifier) ;) (expression_statement "FUN_000f5270();" (call_expression "FUN_000f5270()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_cc = local_d4 + local_c4;" (assignment_expression "local_cc = local_d4 + local_c4" identifier = (binary_expression "local_d4 + local_c4" identifier + identifier)) ;) (expression_statement "local_b4 = local_b4 + 0x10;" (assignment_expression "local_b4 = local_b4 + 0x10" identifier = (binary_expression "local_b4 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar28 = (undefined1 *)piVar27;" (assignment_expression "puVar28 = (undefined1 *)piVar27" identifier = (cast_expression "(undefined1 *)piVar27" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppppiVar24 = (int ****)local_b4;" (assignment_expression "ppppiVar24 = (int ****)local_b4" identifier = (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) }) while (parenthesized_expression "((int ****)*local_d8 != (int ****)local_b4)" ( (binary_expression "(int ****)*local_d8 != (int ****)local_b4" (cast_expression "(int ****)*local_d8" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*local_d8" * identifier)) != (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) ;) })) (labeled_statement "LAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);" statement_identifier : (expression_statement "local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);" (assignment_expression "local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20)" (field_expression "local_d4._4_4_" identifier . field_identifier) = (call_expression "(undefined4)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_ec = (uint **)((int)local_ec + 1);" (assignment_expression "local_ec = (uint **)((int)local_ec + 1)" identifier = (cast_expression "(uint **)((int)local_ec + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_ec + 1)" ( (binary_expression "(int)local_ec + 1" (cast_expression "(int)local_ec" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_d8 = local_d8 + 3;" (assignment_expression "local_d8 = local_d8 + 3" identifier = (binary_expression "local_d8 + 3" identifier + number_literal)) ;) (if_statement "if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }" if (parenthesized_expression "(local_ec == (uint **)local_f4)" ( (binary_expression "local_ec == (uint **)local_f4" identifier == (cast_expression "(uint **)local_f4" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )) (compound_statement "{\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }" { (if_statement "if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }" if (parenthesized_expression "(((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8))" ( (binary_expression "((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)" (parenthesized_expression "((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0))" ( (binary_expression "(param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)" (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) || (parenthesized_expression "((*(byte *)(param_4 + 0x55) & 4) == 0)" ( (binary_expression "(*(byte *)(param_4 + 0x55) & 4) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0x55) & 4)" ( (binary_expression "*(byte *)(param_4 + 0x55) & 4" (pointer_expression "*(byte *)(param_4 + 0x55)" * (cast_expression "(byte *)(param_4 + 0x55)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x55)" ( (binary_expression "param_4 + 0x55" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(*(int *)(param_4 + 0x50) != 8)" ( (binary_expression "*(int *)(param_4 + 0x50) != 8" (pointer_expression "*(int *)(param_4 + 0x50)" * (cast_expression "(int *)(param_4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n        *param_7 = local_cc;\n      }" { (expression_statement "*param_7 = local_cc;" (assignment_expression "*param_7 = local_cc" (pointer_expression "*param_7" * identifier) = identifier) ;) }) (else_clause "else {\n        local_cc = *param_7;\n      }" else (compound_statement "{\n        local_cc = *param_7;\n      }" { (expression_statement "local_cc = *param_7;" (assignment_expression "local_cc = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) }))) (expression_statement "*(longlong *)(param_1 + 0x40) = local_cc;" (assignment_expression "*(longlong *)(param_1 + 0x40) = local_cc" (pointer_expression "*(longlong *)(param_1 + 0x40)" * (cast_expression "(longlong *)(param_1 + 0x40)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x48) = *param_9;" (assignment_expression "*(undefined4 *)(param_1 + 0x48) = *param_9" (pointer_expression "*(undefined4 *)(param_1 + 0x48)" * (cast_expression "(undefined4 *)(param_1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = (pointer_expression "*param_9" * identifier)) ;) (expression_statement "puVar14 = local_114;" (assignment_expression "puVar14 = local_114" identifier = identifier) ;) (if_statement "if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }" if (parenthesized_expression "(local_110 != local_114)" ( (binary_expression "local_110 != local_114" identifier != identifier) )) (compound_statement "{\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }" { (do_statement "do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);" do (compound_statement "{\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        }" { (expression_statement "ppppiVar24 = (int ****)puVar14[1];" (assignment_expression "ppppiVar24 = (int ****)puVar14[1]" identifier = (cast_expression "(int ****)puVar14[1]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "puVar14[1]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar17 = (int ****)*puVar14;" (assignment_expression "ppppiVar17 = (int ****)*puVar14" identifier = (cast_expression "(int ****)*puVar14" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*puVar14" * identifier))) ;) (if_statement "if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }" if (parenthesized_expression "(ppppiVar24 != ppppiVar17)" ( (binary_expression "ppppiVar24 != ppppiVar17" identifier != identifier) )) (compound_statement "{\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }" { (do_statement "do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);" do (compound_statement "{\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            }" { (expression_statement "local_b4 = (uint ***)ppppiVar17;" (assignment_expression "local_b4 = (uint ***)ppppiVar17" identifier = (cast_expression "(uint ***)ppppiVar17" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }" if (parenthesized_expression "((uint ***)local_b4[6] != local_b4 + 8)" ( (binary_expression "(uint ***)local_b4[6] != local_b4 + 8" (cast_expression "(uint ***)local_b4[6]" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_b4[6]" identifier [ number_literal ])) != (binary_expression "local_b4 + 8" identifier + number_literal)) )) (compound_statement "{\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }" { (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_b4[6];" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_b4[6]" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" * (cast_expression "(uint ***)((int)piVar27 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_b4[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160caf" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) })) (expression_statement "local_b4 = local_b4 + 0x10;" (assignment_expression "local_b4 = local_b4 + 0x10" identifier = (binary_expression "local_b4 + 0x10" identifier + number_literal)) ;) (expression_statement "ppppiVar17 = (int ****)local_b4;" (assignment_expression "ppppiVar17 = (int ****)local_b4" identifier = (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }) while (parenthesized_expression "(ppppiVar24 != (int ****)local_b4)" ( (binary_expression "ppppiVar24 != (int ****)local_b4" identifier != (cast_expression "(int ****)local_b4" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) ;) (expression_statement "ppppiVar17 = (int ****)*puVar14;" (assignment_expression "ppppiVar17 = (int ****)*puVar14" identifier = (cast_expression "(int ****)*puVar14" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*puVar14" * identifier))) ;) })) (if_statement "if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }" if (parenthesized_expression "(ppppiVar17 != (int ****)0x0)" ( (binary_expression "ppppiVar17 != (int ****)0x0" identifier != (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }" { (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "*(int *****)((int)piVar27 + -0x10) = ppppiVar17;" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = ppppiVar17" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" * (cast_expression "(int *****)((int)piVar27 + -0x10)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" identifier = identifier) ;) })) (expression_statement "puVar14 = puVar14 + 3;" (assignment_expression "puVar14 = puVar14 + 3" identifier = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != local_110)" ( (binary_expression "puVar14 != local_110" identifier != identifier) )) ;) })) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" identifier = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = local_114;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = local_114" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar27 + -0x10)" ( (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + -0x14)" ( (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "iVar29 = iVar29 >> 1;" (assignment_expression "iVar29 = iVar29 >> 1" identifier = (binary_expression "iVar29 >> 1" identifier >> number_literal)) ;) (if_statement "if (iVar29 == 0) goto LAB_00160b72;" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00160b72;" goto statement_identifier ;)) (goto_statement "goto LAB_001609e8;" goto statement_identifier ;) })))
(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 IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration 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 * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) >> LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (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) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT) == (pointer_expression & IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) 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) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression & IDENT))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (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 ]) = 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 (subscript_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (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 (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & IDENT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (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 *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (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 IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (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 ])) ;) }) (else_clause else (compound_statement { (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (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) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )) + LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) 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) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) != IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) != IDENT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) )) (goto_statement goto statement_identifier ;)) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression * IDENT))) ;) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT) < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (call_expression IDENT (argument_list ( ))) ;) })) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT . field_identifier) < (field_expression IDENT . field_identifier)) || (binary_expression (binary_expression (field_expression IDENT . field_identifier) - (field_expression IDENT . field_identifier)) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT . field_identifier) - (field_expression IDENT . field_identifier)) != (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (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) )))) = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) })) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT)) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_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 IDENT + LIT) )))) & LIT) )) == LIT) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) }) while (parenthesized_expression ( BOOL )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_00160460(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)\n\n{\n  int ****ppppiVar1;\n  int ****ppppiVar2;\n  code *pcVar3;\n  int ***pppiVar4;\n  undefined **ppuVar5;\n  int **ppiVar6;\n  int *piVar7;\n  bool bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  uint **ppuVar11;\n  char cVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  int ****ppppiVar17;\n  int ***pppiVar18;\n  int ****ppppiVar19;\n  byte bVar20;\n  int iVar21;\n  uint ***pppuVar22;\n  uint uVar23;\n  int ****ppppiVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  int *piVar27;\n  undefined1 *puVar28;\n  int iVar29;\n  longlong lVar30;\n  longlong lVar31;\n  int local_11c;\n  int local_118;\n  undefined4 *local_114;\n  undefined4 *local_110;\n  uint ***local_10c;\n  uint ***local_108;\n  uint ***local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint **local_ec;\n  uint **local_e8;\n  uint local_e4;\n  uint local_e0;\n  int ***local_dc;\n  undefined4 *local_d8;\n  undefined8 local_d4;\n  undefined8 local_cc;\n  undefined8 local_c4;\n  uint ***local_bc;\n  undefined **local_b8;\n  uint ***local_b4;\n  uint local_b0;\n  uint **local_a4;\n  int local_a0;\n  uint *local_9c [4];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  int ***local_74;\n  uint **local_70;\n  uint **local_6c;\n  uint **local_68;\n  uint **local_64;\n  uint **local_60;\n  undefined4 *local_5c;\n  uint *local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int ***local_44;\n  uint **local_40;\n  uint **local_3c [4];\n  undefined8 local_2c;\n  undefined8 local_24;\n  \n  local_b8 = &__DT_PLTGOT;\n  local_e4 = param_5;\n  local_b4 = *(uint ****)(param_1 + 0x34);\n  local_e0 = param_6;\n  iVar13 = *(int *)(param_1 + 0x30);\n  uVar25 = (int)local_b4 - iVar13 >> 5;\n  local_cc._0_4_ = uVar25;\n  if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (undefined4 *)FUN_001e5200(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  puVar14 = (undefined4 *)*param_11;\njoined_r0x001608d0:\n  piVar27 = &local_11c;\n  if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }\n  local_ec = (uint **)0x0;\n  local_cc = *param_7;\n  local_d8 = local_114 + 1;\n  local_dc = (int ***)(local_b8 + -0x2d01);\n  local_b4 = (uint ***)(local_e4 - 1);\n  local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);\n  local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;\n  local_11c = (int)local_b8 + -0xeb73d;\n  local_e8 = (uint **)local_11c;\n  do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );\n  iVar29 = iVar29 >> 1;\n  if (iVar29 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}" (primitive_type "void") (function_declarator "FUN_00160460(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)" (identifier "FUN_00160460") (parameter_list "(int param_1,undefined4 param_2,int param_3,int param_4,uint param_5,uint param_6,\n                 longlong *param_7,undefined4 param_8,undefined4 *param_9,int param_10,\n                 undefined4 *param_11)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "uint param_6" (type_identifier "uint") (identifier "param_6")) (, ",") (parameter_declaration "longlong *param_7" (type_identifier "longlong") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "undefined4 *param_9" (type_identifier "undefined4") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) (, ",") (parameter_declaration "int param_10" (primitive_type "int") (identifier "param_10")) (, ",") (parameter_declaration "undefined4 *param_11" (type_identifier "undefined4") (pointer_declarator "*param_11" (* "*") (identifier "param_11"))) () ")"))) (compound_statement "{\n  int ****ppppiVar1;\n  int ****ppppiVar2;\n  code *pcVar3;\n  int ***pppiVar4;\n  undefined **ppuVar5;\n  int **ppiVar6;\n  int *piVar7;\n  bool bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  uint **ppuVar11;\n  char cVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  int ****ppppiVar17;\n  int ***pppiVar18;\n  int ****ppppiVar19;\n  byte bVar20;\n  int iVar21;\n  uint ***pppuVar22;\n  uint uVar23;\n  int ****ppppiVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  int *piVar27;\n  undefined1 *puVar28;\n  int iVar29;\n  longlong lVar30;\n  longlong lVar31;\n  int local_11c;\n  int local_118;\n  undefined4 *local_114;\n  undefined4 *local_110;\n  uint ***local_10c;\n  uint ***local_108;\n  uint ***local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  uint local_f4;\n  uint local_f0;\n  uint **local_ec;\n  uint **local_e8;\n  uint local_e4;\n  uint local_e0;\n  int ***local_dc;\n  undefined4 *local_d8;\n  undefined8 local_d4;\n  undefined8 local_cc;\n  undefined8 local_c4;\n  uint ***local_bc;\n  undefined **local_b8;\n  uint ***local_b4;\n  uint local_b0;\n  uint **local_a4;\n  int local_a0;\n  uint *local_9c [4];\n  undefined1 *local_8c [2];\n  undefined1 local_84 [16];\n  int ***local_74;\n  uint **local_70;\n  uint **local_6c;\n  uint **local_68;\n  uint **local_64;\n  uint **local_60;\n  undefined4 *local_5c;\n  uint *local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int ***local_44;\n  uint **local_40;\n  uint **local_3c [4];\n  undefined8 local_2c;\n  undefined8 local_24;\n  \n  local_b8 = &__DT_PLTGOT;\n  local_e4 = param_5;\n  local_b4 = *(uint ****)(param_1 + 0x34);\n  local_e0 = param_6;\n  iVar13 = *(int *)(param_1 + 0x30);\n  uVar25 = (int)local_b4 - iVar13 >> 5;\n  local_cc._0_4_ = uVar25;\n  if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }\n  local_114 = (undefined4 *)FUN_001e5200(0xc);\n  local_f4 = 1;\n  *local_114 = 0;\n  local_114[1] = 0;\n  local_114[2] = 0;\n  local_110 = local_114 + 3;\n  puVar14 = (undefined4 *)*param_11;\njoined_r0x001608d0:\n  piVar27 = &local_11c;\n  if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }\n  local_ec = (uint **)0x0;\n  local_cc = *param_7;\n  local_d8 = local_114 + 1;\n  local_dc = (int ***)(local_b8 + -0x2d01);\n  local_b4 = (uint ***)(local_e4 - 1);\n  local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);\n  local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;\n  local_11c = (int)local_b8 + -0xeb73d;\n  local_e8 = (uint **)local_11c;\n  do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );\n  iVar29 = iVar29 >> 1;\n  if (iVar29 == 0) goto LAB_00160b72;\n  goto LAB_001609e8;\n}" ({ "{") (declaration "int ****ppppiVar1;" (primitive_type "int") (pointer_declarator "****ppppiVar1" (* "*") (pointer_declarator "***ppppiVar1" (* "*") (pointer_declarator "**ppppiVar1" (* "*") (pointer_declarator "*ppppiVar1" (* "*") (identifier "ppppiVar1"))))) (; ";")) (declaration "int ****ppppiVar2;" (primitive_type "int") (pointer_declarator "****ppppiVar2" (* "*") (pointer_declarator "***ppppiVar2" (* "*") (pointer_declarator "**ppppiVar2" (* "*") (pointer_declarator "*ppppiVar2" (* "*") (identifier "ppppiVar2"))))) (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int ***pppiVar4;" (primitive_type "int") (pointer_declarator "***pppiVar4" (* "*") (pointer_declarator "**pppiVar4" (* "*") (pointer_declarator "*pppiVar4" (* "*") (identifier "pppiVar4")))) (; ";")) (declaration "undefined **ppuVar5;" (type_identifier "undefined") (pointer_declarator "**ppuVar5" (* "*") (pointer_declarator "*ppuVar5" (* "*") (identifier "ppuVar5"))) (; ";")) (declaration "int **ppiVar6;" (primitive_type "int") (pointer_declarator "**ppiVar6" (* "*") (pointer_declarator "*ppiVar6" (* "*") (identifier "ppiVar6"))) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "bool bVar8;" (primitive_type "bool") (identifier "bVar8") (; ";")) (declaration "longlong lVar9;" (type_identifier "longlong") (identifier "lVar9") (; ";")) (declaration "longlong lVar10;" (type_identifier "longlong") (identifier "lVar10") (; ";")) (declaration "uint **ppuVar11;" (type_identifier "uint") (pointer_declarator "**ppuVar11" (* "*") (pointer_declarator "*ppuVar11" (* "*") (identifier "ppuVar11"))) (; ";")) (declaration "char cVar12;" (primitive_type "char") (identifier "cVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int ****ppppiVar17;" (primitive_type "int") (pointer_declarator "****ppppiVar17" (* "*") (pointer_declarator "***ppppiVar17" (* "*") (pointer_declarator "**ppppiVar17" (* "*") (pointer_declarator "*ppppiVar17" (* "*") (identifier "ppppiVar17"))))) (; ";")) (declaration "int ***pppiVar18;" (primitive_type "int") (pointer_declarator "***pppiVar18" (* "*") (pointer_declarator "**pppiVar18" (* "*") (pointer_declarator "*pppiVar18" (* "*") (identifier "pppiVar18")))) (; ";")) (declaration "int ****ppppiVar19;" (primitive_type "int") (pointer_declarator "****ppppiVar19" (* "*") (pointer_declarator "***ppppiVar19" (* "*") (pointer_declarator "**ppppiVar19" (* "*") (pointer_declarator "*ppppiVar19" (* "*") (identifier "ppppiVar19"))))) (; ";")) (declaration "byte bVar20;" (type_identifier "byte") (identifier "bVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "uint ***pppuVar22;" (type_identifier "uint") (pointer_declarator "***pppuVar22" (* "*") (pointer_declarator "**pppuVar22" (* "*") (pointer_declarator "*pppuVar22" (* "*") (identifier "pppuVar22")))) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "int ****ppppiVar24;" (primitive_type "int") (pointer_declarator "****ppppiVar24" (* "*") (pointer_declarator "***ppppiVar24" (* "*") (pointer_declarator "**ppppiVar24" (* "*") (pointer_declarator "*ppppiVar24" (* "*") (identifier "ppppiVar24"))))) (; ";")) (declaration "uint uVar25;" (type_identifier "uint") (identifier "uVar25") (; ";")) (declaration "undefined4 *puVar26;" (type_identifier "undefined4") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "int *piVar27;" (primitive_type "int") (pointer_declarator "*piVar27" (* "*") (identifier "piVar27")) (; ";")) (declaration "undefined1 *puVar28;" (type_identifier "undefined1") (pointer_declarator "*puVar28" (* "*") (identifier "puVar28")) (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "longlong lVar30;" (type_identifier "longlong") (identifier "lVar30") (; ";")) (declaration "longlong lVar31;" (type_identifier "longlong") (identifier "lVar31") (; ";")) (declaration "int local_11c;" (primitive_type "int") (identifier "local_11c") (; ";")) (declaration "int local_118;" (primitive_type "int") (identifier "local_118") (; ";")) (declaration "undefined4 *local_114;" (type_identifier "undefined4") (pointer_declarator "*local_114" (* "*") (identifier "local_114")) (; ";")) (declaration "undefined4 *local_110;" (type_identifier "undefined4") (pointer_declarator "*local_110" (* "*") (identifier "local_110")) (; ";")) (declaration "uint ***local_10c;" (type_identifier "uint") (pointer_declarator "***local_10c" (* "*") (pointer_declarator "**local_10c" (* "*") (pointer_declarator "*local_10c" (* "*") (identifier "local_10c")))) (; ";")) (declaration "uint ***local_108;" (type_identifier "uint") (pointer_declarator "***local_108" (* "*") (pointer_declarator "**local_108" (* "*") (pointer_declarator "*local_108" (* "*") (identifier "local_108")))) (; ";")) (declaration "uint ***local_104;" (type_identifier "uint") (pointer_declarator "***local_104" (* "*") (pointer_declarator "**local_104" (* "*") (pointer_declarator "*local_104" (* "*") (identifier "local_104")))) (; ";")) (declaration "int local_100;" (primitive_type "int") (identifier "local_100") (; ";")) (declaration "int local_fc;" (primitive_type "int") (identifier "local_fc") (; ";")) (declaration "int local_f8;" (primitive_type "int") (identifier "local_f8") (; ";")) (declaration "uint local_f4;" (type_identifier "uint") (identifier "local_f4") (; ";")) (declaration "uint local_f0;" (type_identifier "uint") (identifier "local_f0") (; ";")) (declaration "uint **local_ec;" (type_identifier "uint") (pointer_declarator "**local_ec" (* "*") (pointer_declarator "*local_ec" (* "*") (identifier "local_ec"))) (; ";")) (declaration "uint **local_e8;" (type_identifier "uint") (pointer_declarator "**local_e8" (* "*") (pointer_declarator "*local_e8" (* "*") (identifier "local_e8"))) (; ";")) (declaration "uint local_e4;" (type_identifier "uint") (identifier "local_e4") (; ";")) (declaration "uint local_e0;" (type_identifier "uint") (identifier "local_e0") (; ";")) (declaration "int ***local_dc;" (primitive_type "int") (pointer_declarator "***local_dc" (* "*") (pointer_declarator "**local_dc" (* "*") (pointer_declarator "*local_dc" (* "*") (identifier "local_dc")))) (; ";")) (declaration "undefined4 *local_d8;" (type_identifier "undefined4") (pointer_declarator "*local_d8" (* "*") (identifier "local_d8")) (; ";")) (declaration "undefined8 local_d4;" (type_identifier "undefined8") (identifier "local_d4") (; ";")) (declaration "undefined8 local_cc;" (type_identifier "undefined8") (identifier "local_cc") (; ";")) (declaration "undefined8 local_c4;" (type_identifier "undefined8") (identifier "local_c4") (; ";")) (declaration "uint ***local_bc;" (type_identifier "uint") (pointer_declarator "***local_bc" (* "*") (pointer_declarator "**local_bc" (* "*") (pointer_declarator "*local_bc" (* "*") (identifier "local_bc")))) (; ";")) (declaration "undefined **local_b8;" (type_identifier "undefined") (pointer_declarator "**local_b8" (* "*") (pointer_declarator "*local_b8" (* "*") (identifier "local_b8"))) (; ";")) (declaration "uint ***local_b4;" (type_identifier "uint") (pointer_declarator "***local_b4" (* "*") (pointer_declarator "**local_b4" (* "*") (pointer_declarator "*local_b4" (* "*") (identifier "local_b4")))) (; ";")) (declaration "uint local_b0;" (type_identifier "uint") (identifier "local_b0") (; ";")) (declaration "uint **local_a4;" (type_identifier "uint") (pointer_declarator "**local_a4" (* "*") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4"))) (; ";")) (declaration "int local_a0;" (primitive_type "int") (identifier "local_a0") (; ";")) (declaration "uint *local_9c [4];" (type_identifier "uint") (pointer_declarator "*local_9c [4]" (* "*") (array_declarator "local_9c [4]" (identifier "local_9c") ([ "[") (number_literal "4") (] "]"))) (; ";")) (declaration "undefined1 *local_8c [2];" (type_identifier "undefined1") (pointer_declarator "*local_8c [2]" (* "*") (array_declarator "local_8c [2]" (identifier "local_8c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_84 [16];" (type_identifier "undefined1") (array_declarator "local_84 [16]" (identifier "local_84") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int ***local_74;" (primitive_type "int") (pointer_declarator "***local_74" (* "*") (pointer_declarator "**local_74" (* "*") (pointer_declarator "*local_74" (* "*") (identifier "local_74")))) (; ";")) (declaration "uint **local_70;" (type_identifier "uint") (pointer_declarator "**local_70" (* "*") (pointer_declarator "*local_70" (* "*") (identifier "local_70"))) (; ";")) (declaration "uint **local_6c;" (type_identifier "uint") (pointer_declarator "**local_6c" (* "*") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c"))) (; ";")) (declaration "uint **local_68;" (type_identifier "uint") (pointer_declarator "**local_68" (* "*") (pointer_declarator "*local_68" (* "*") (identifier "local_68"))) (; ";")) (declaration "uint **local_64;" (type_identifier "uint") (pointer_declarator "**local_64" (* "*") (pointer_declarator "*local_64" (* "*") (identifier "local_64"))) (; ";")) (declaration "uint **local_60;" (type_identifier "uint") (pointer_declarator "**local_60" (* "*") (pointer_declarator "*local_60" (* "*") (identifier "local_60"))) (; ";")) (declaration "undefined4 *local_5c;" (type_identifier "undefined4") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "uint *local_58;" (type_identifier "uint") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "int ***local_44;" (primitive_type "int") (pointer_declarator "***local_44" (* "*") (pointer_declarator "**local_44" (* "*") (pointer_declarator "*local_44" (* "*") (identifier "local_44")))) (; ";")) (declaration "uint **local_40;" (type_identifier "uint") (pointer_declarator "**local_40" (* "*") (pointer_declarator "*local_40" (* "*") (identifier "local_40"))) (; ";")) (declaration "uint **local_3c [4];" (type_identifier "uint") (pointer_declarator "**local_3c [4]" (* "*") (pointer_declarator "*local_3c [4]" (* "*") (array_declarator "local_3c [4]" (identifier "local_3c") ([ "[") (number_literal "4") (] "]")))) (; ";")) (declaration "undefined8 local_2c;" (type_identifier "undefined8") (identifier "local_2c") (; ";")) (declaration "undefined8 local_24;" (type_identifier "undefined8") (identifier "local_24") (; ";")) (expression_statement "local_b8 = &__DT_PLTGOT;" (assignment_expression "local_b8 = &__DT_PLTGOT" (identifier "local_b8") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_e4 = param_5;" (assignment_expression "local_e4 = param_5" (identifier "local_e4") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_b4 = *(uint ****)(param_1 + 0x34);" (assignment_expression "local_b4 = *(uint ****)(param_1 + 0x34)" (identifier "local_b4") (= "=") (pointer_expression "*(uint ****)(param_1 + 0x34)" (* "*") (cast_expression "(uint ****)(param_1 + 0x34)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_e0 = param_6;" (assignment_expression "local_e0 = param_6" (identifier "local_e0") (= "=") (identifier "param_6")) (; ";")) (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar25 = (int)local_b4 - iVar13 >> 5;" (assignment_expression "uVar25 = (int)local_b4 - iVar13 >> 5" (identifier "uVar25") (= "=") (binary_expression "(int)local_b4 - iVar13 >> 5" (binary_expression "(int)local_b4 - iVar13" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (- "-") (identifier "iVar13")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "local_cc._0_4_ = uVar25;" (assignment_expression "local_cc._0_4_ = uVar25" (field_expression "local_cc._0_4_" (identifier "local_cc") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "uVar25")) (; ";")) (if_statement "if (uVar25 != 0) {\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }" (if "if") (parenthesized_expression "(uVar25 != 0)" (( "(") (binary_expression "uVar25 != 0" (identifier "uVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar21 = ((int)local_b4 - iVar13) + iVar13;\n    bVar8 = false;\n    do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);\n    if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }\n  }" ({ "{") (expression_statement "iVar21 = ((int)local_b4 - iVar13) + iVar13;" (assignment_expression "iVar21 = ((int)local_b4 - iVar13) + iVar13" (identifier "iVar21") (= "=") (binary_expression "((int)local_b4 - iVar13) + iVar13" (parenthesized_expression "((int)local_b4 - iVar13)" (( "(") (binary_expression "(int)local_b4 - iVar13" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (- "-") (identifier "iVar13")) () ")")) (+ "+") (identifier "iVar13"))) (; ";")) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" (identifier "bVar8") (= "=") (false "false")) (; ";")) (do_statement "do {\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    } while (iVar21 != iVar13);" (do "do") (compound_statement "{\n      if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }\n      iVar13 = iVar13 + 0x20;\n    }" ({ "{") (if_statement "if (*(int *)(iVar13 + 0x1c) != 0) {\n        bVar8 = true;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar13 + 0x1c) != 0)" (( "(") (binary_expression "*(int *)(iVar13 + 0x1c) != 0" (pointer_expression "*(int *)(iVar13 + 0x1c)" (* "*") (cast_expression "(int *)(iVar13 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x1c)" (( "(") (binary_expression "iVar13 + 0x1c" (identifier "iVar13") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        bVar8 = true;\n      }" ({ "{") (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" (identifier "bVar8") (= "=") (true "true")) (; ";")) (} "}"))) (expression_statement "iVar13 = iVar13 + 0x20;" (assignment_expression "iVar13 = iVar13 + 0x20" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar21 != iVar13)" (( "(") (binary_expression "iVar21 != iVar13" (identifier "iVar21") (!= "!=") (identifier "iVar13")) () ")")) (; ";")) (if_statement "if (bVar8) {\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }" (if "if") (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")")) (compound_statement "{\n      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);\n      puVar14 = local_114;\n      uVar23 = uVar25;\n      do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);\n      local_110 = local_114 + uVar25 * 3;\n      puVar14 = (undefined4 *)*param_11;\n      local_f4 = (uint)local_cc;\n      goto joined_r0x001608d0;\n    }" ({ "{") (expression_statement "local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);" (assignment_expression "local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc)" (identifier "local_114") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(uVar25 * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(uVar25 * 0xc)" (identifier "FUN_001e5200") (argument_list "(uVar25 * 0xc)" (( "(") (binary_expression "uVar25 * 0xc" (identifier "uVar25") (* "*") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "puVar14 = local_114;" (assignment_expression "puVar14 = local_114" (identifier "puVar14") (= "=") (identifier "local_114")) (; ";")) (expression_statement "uVar23 = uVar25;" (assignment_expression "uVar23 = uVar25" (identifier "uVar23") (= "=") (identifier "uVar25")) (; ";")) (do_statement "do {\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      } while (uVar23 != 0);" (do "do") (compound_statement "{\n        *puVar14 = 0;\n        puVar14[1] = 0;\n        puVar14[2] = 0;\n        uVar23 = uVar23 - 1;\n        puVar14 = puVar14 + 3;\n      }" ({ "{") (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 - 1" (identifier "uVar23") (- "-") (number_literal "1"))) (; ";")) (expression_statement "puVar14 = puVar14 + 3;" (assignment_expression "puVar14 = puVar14 + 3" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "local_110 = local_114 + uVar25 * 3;" (assignment_expression "local_110 = local_114 + uVar25 * 3" (identifier "local_110") (= "=") (binary_expression "local_114 + uVar25 * 3" (identifier "local_114") (+ "+") (binary_expression "uVar25 * 3" (identifier "uVar25") (* "*") (number_literal "3")))) (; ";")) (expression_statement "puVar14 = (undefined4 *)*param_11;" (assignment_expression "puVar14 = (undefined4 *)*param_11" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)*param_11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_11" (* "*") (identifier "param_11")))) (; ";")) (expression_statement "local_f4 = (uint)local_cc;" (assignment_expression "local_f4 = (uint)local_cc" (identifier "local_f4") (= "=") (cast_expression "(uint)local_cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_cc"))) (; ";")) (goto_statement "goto joined_r0x001608d0;" (goto "goto") (statement_identifier "joined_r0x001608d0") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_114 = (undefined4 *)FUN_001e5200(0xc);" (assignment_expression "local_114 = (undefined4 *)FUN_001e5200(0xc)" (identifier "local_114") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0xc)" (identifier "FUN_001e5200") (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "local_f4 = 1;" (assignment_expression "local_f4 = 1" (identifier "local_f4") (= "=") (number_literal "1")) (; ";")) (expression_statement "*local_114 = 0;" (assignment_expression "*local_114 = 0" (pointer_expression "*local_114" (* "*") (identifier "local_114")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_114[1] = 0;" (assignment_expression "local_114[1] = 0" (subscript_expression "local_114[1]" (identifier "local_114") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_114[2] = 0;" (assignment_expression "local_114[2] = 0" (subscript_expression "local_114[2]" (identifier "local_114") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_110 = local_114 + 3;" (assignment_expression "local_110 = local_114 + 3" (identifier "local_110") (= "=") (binary_expression "local_114 + 3" (identifier "local_114") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar14 = (undefined4 *)*param_11;" (assignment_expression "puVar14 = (undefined4 *)*param_11" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)*param_11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_11" (* "*") (identifier "param_11")))) (; ";")) (labeled_statement "joined_r0x001608d0:\n  piVar27 = &local_11c;" (statement_identifier "joined_r0x001608d0") (: ":") (expression_statement "piVar27 = &local_11c;" (assignment_expression "piVar27 = &local_11c" (identifier "piVar27") (= "=") (pointer_expression "&local_11c" (& "&") (identifier "local_11c"))) (; ";"))) (if_statement "if (puVar14 != param_11) {\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }" (if "if") (parenthesized_expression "(puVar14 != param_11)" (( "(") (binary_expression "puVar14 != param_11" (identifier "puVar14") (!= "!=") (identifier "param_11")) () ")")) (compound_statement "{\n    piVar27 = &local_11c;\n    local_d4._0_4_ = (int ****)local_3c;\n    local_bc = &local_a4;\n    do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);\n  }" ({ "{") (expression_statement "piVar27 = &local_11c;" (assignment_expression "piVar27 = &local_11c" (identifier "piVar27") (= "=") (pointer_expression "&local_11c" (& "&") (identifier "local_11c"))) (; ";")) (expression_statement "local_d4._0_4_ = (int ****)local_3c;" (assignment_expression "local_d4._0_4_ = (int ****)local_3c" (field_expression "local_d4._0_4_" (identifier "local_d4") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(int ****)local_3c" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_3c"))) (; ";")) (expression_statement "local_bc = &local_a4;" (assignment_expression "local_bc = &local_a4" (identifier "local_bc") (= "=") (pointer_expression "&local_a4" (& "&") (identifier "local_a4"))) (; ";")) (do_statement "do {\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    } while (puVar16 != param_11);" (do "do") (compound_statement "{\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;\n      local_b4 = (uint ***)FUN_000ede60();\n      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;\n      uVar15 = FUN_000edef0();\n      local_5c = (undefined4 *)puVar14[2];\n      local_58 = (uint *)puVar14[3];\n      local_54 = puVar14[4];\n      local_50 = puVar14[5];\n      local_4c = puVar14[6];\n      local_48 = puVar14[7];\n      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);\n      local_44 = (int ***)(int ****)local_d4;\n      iVar13 = (int)local_b4[7];\n      local_40 = (uint **)0x0;\n      local_2c._0_4_ = 0;\n      local_2c._4_4_ = 0;\n      local_24._0_4_ = 1;\n      local_24._4_4_ = 0;\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }\n      iVar13 = (int)*local_b4;\n      *(undefined4 *)((int)piVar27 + -8) = uVar15;\n      *(uint ****)((int)piVar27 + -0xc) = local_b4;\n      *(uint ****)((int)piVar27 + -0x10) = local_bc;\n                    \n      pcVar3 = *(code **)(iVar13 + 0x40);\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;\n      (*pcVar3)();\n      *(uint ***)((int)piVar27 + -0x14) = local_a4;\n                    \n      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;\n      cVar12 = FUN_00096ec0();\n      if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }\n      piVar27 = (int *)puVar28;\n      if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }\n      pppuVar22 = local_b4;\n      if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }\n      iVar13 = (int)local_b4[7];\n      if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }\n      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];\n      *(int *)((int)piVar27 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;\n      cVar12 = FUN_0015b690();\n      if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }\n      if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }\n      puVar14 = puVar16;\n    }" ({ "{") (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160572;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160572" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160572")) (; ";")) (expression_statement "local_b4 = (uint ***)FUN_000ede60();" (assignment_expression "local_b4 = (uint ***)FUN_000ede60()" (identifier "local_b4") (= "=") (cast_expression "(uint ***)FUN_000ede60()" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (call_expression "FUN_000ede60()" (identifier "FUN_000ede60") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160586;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160586" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160586")) (; ";")) (expression_statement "uVar15 = FUN_000edef0();" (assignment_expression "uVar15 = FUN_000edef0()" (identifier "uVar15") (= "=") (call_expression "FUN_000edef0()" (identifier "FUN_000edef0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_5c = (undefined4 *)puVar14[2];" (assignment_expression "local_5c = (undefined4 *)puVar14[2]" (identifier "local_5c") (= "=") (cast_expression "(undefined4 *)puVar14[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_58 = (uint *)puVar14[3];" (assignment_expression "local_58 = (uint *)puVar14[3]" (identifier "local_58") (= "=") (cast_expression "(uint *)puVar14[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "local_54 = puVar14[4];" (assignment_expression "local_54 = puVar14[4]" (identifier "local_54") (= "=") (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_50 = puVar14[5];" (assignment_expression "local_50 = puVar14[5]" (identifier "local_50") (= "=") (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_4c = puVar14[6];" (assignment_expression "local_4c = puVar14[6]" (identifier "local_4c") (= "=") (subscript_expression "puVar14[6]" (identifier "puVar14") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "local_48 = puVar14[7];" (assignment_expression "local_48 = puVar14[7]" (identifier "local_48") (= "=") (subscript_expression "puVar14[7]" (identifier "puVar14") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);" (assignment_expression "local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00)" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(uint **)((uint)local_3c[0] & 0xffffff00)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((uint)local_3c[0] & 0xffffff00)" (( "(") (binary_expression "(uint)local_3c[0] & 0xffffff00" (cast_expression "(uint)local_3c[0]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]"))) (& "&") (number_literal "0xffffff00")) () ")")))) (; ";")) (expression_statement "local_44 = (int ***)(int ****)local_d4;" (assignment_expression "local_44 = (int ***)(int ****)local_d4" (identifier "local_44") (= "=") (cast_expression "(int ***)(int ****)local_d4" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (cast_expression "(int ****)local_d4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_d4")))) (; ";")) (expression_statement "iVar13 = (int)local_b4[7];" (assignment_expression "iVar13 = (int)local_b4[7]" (identifier "iVar13") (= "=") (cast_expression "(int)local_b4[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_b4[7]" (identifier "local_b4") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "local_40 = (uint **)0x0;" (assignment_expression "local_40 = (uint **)0x0" (identifier "local_40") (= "=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_2c._0_4_ = 0;" (assignment_expression "local_2c._0_4_ = 0" (field_expression "local_2c._0_4_" (identifier "local_2c") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c._4_4_ = 0;" (assignment_expression "local_2c._4_4_ = 0" (field_expression "local_2c._4_4_" (identifier "local_2c") (. ".") (field_identifier "_4_4_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24._0_4_ = 1;" (assignment_expression "local_24._0_4_ = 1" (field_expression "local_24._0_4_" (identifier "local_24") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_24._4_4_ = 0;" (assignment_expression "local_24._4_4_ = 0" (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;\n        FUN_000669a0();\n      }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c" (pointer_expression "*(int *)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "iVar13 + 0x1c" (identifier "iVar13") (+ "+") (number_literal "0x1c"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160600;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160600" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160600")) (; ";")) (expression_statement "FUN_000669a0();" (call_expression "FUN_000669a0()" (identifier "FUN_000669a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = (int)*local_b4;" (assignment_expression "iVar13 = (int)*local_b4" (identifier "iVar13") (= "=") (cast_expression "(int)*local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*local_b4" (* "*") (identifier "local_b4")))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -8) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -8) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -8)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(uint ****)((int)piVar27 + -0xc) = local_b4;" (assignment_expression "*(uint ****)((int)piVar27 + -0xc) = local_b4" (pointer_expression "*(uint ****)((int)piVar27 + -0xc)" (* "*") (cast_expression "(uint ****)((int)piVar27 + -0xc)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_b4")) (; ";")) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_bc;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_bc" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(uint ****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "pcVar3 = *(code **)(iVar13 + 0x40);" (assignment_expression "pcVar3 = *(code **)(iVar13 + 0x40)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(iVar13 + 0x40)" (* "*") (cast_expression "(code **)(iVar13 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 0x40)" (( "(") (binary_expression "iVar13 + 0x40" (identifier "iVar13") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160619;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160619" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160619")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(uint ***)((int)piVar27 + -0x14) = local_a4;" (assignment_expression "*(uint ***)((int)piVar27 + -0x14) = local_a4" (pointer_expression "*(uint ***)((int)piVar27 + -0x14)" (* "*") (cast_expression "(uint ***)((int)piVar27 + -0x14)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x16062a" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x18)" (( "(") (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x16062a")) (; ";")) (expression_statement "cVar12 = FUN_00096ec0();" (assignment_expression "cVar12 = FUN_00096ec0()" (identifier "cVar12") (= "=") (call_expression "FUN_00096ec0()" (identifier "FUN_00096ec0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar12 == '\0') {\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }\n      else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }" (if "if") (parenthesized_expression "(cVar12 == '\0')" (( "(") (binary_expression "cVar12 == '\0'" (identifier "cVar12") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(uint ****)((int)piVar27 + -0x10) = local_bc;\n        *(int *****)((int)piVar27 + -0x14) = &local_44;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;\n        FUN_001ee9c0();\n        puVar28 = (undefined1 *)((int)piVar27 + -4);\n      }" ({ "{") (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_bc;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_bc" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(uint ****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(int *****)((int)piVar27 + -0x14) = &local_44;" (assignment_expression "*(int *****)((int)piVar27 + -0x14) = &local_44" (pointer_expression "*(int *****)((int)piVar27 + -0x14)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0x14)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_44" (& "&") (identifier "local_44"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x18)" (( "(") (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x1610f8")) (; ";")) (expression_statement "FUN_001ee9c0();" (call_expression "FUN_001ee9c0()" (identifier "FUN_001ee9c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar28 = (undefined1 *)((int)piVar27 + -4);" (assignment_expression "puVar28 = (undefined1 *)((int)piVar27 + -4)" (identifier "puVar28") (= "=") (cast_expression "(undefined1 *)((int)piVar27 + -4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -4)" (( "(") (binary_expression "(int)piVar27 + -4" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }" (else "else") (compound_statement "{\n        local_d8 = (undefined4 *)local_84;\n        *(undefined4 *)((int)piVar27 + -8) = 0;\n        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;\n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;\n        local_8c[0] = (undefined1 *)local_d8;\n        FUN_000513a0();\n        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;\n        *(int *****)((int)piVar27 + -0x14) = &local_74;\n                    \n        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;\n        FUN_0009e270();\n        ppuVar11 = local_3c[0];\n        pppiVar18 = local_44;\n        local_dc = local_74;\n        pppuVar22 = &local_6c;\n        if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }\nLAB_001606d8:\n        local_70 = (uint **)0x0;\n        *(undefined1 *)local_74 = 0;\n        if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }\n        puVar28 = (undefined1 *)((int)piVar27 + -8);\n        if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }\n      }" ({ "{") (expression_statement "local_d8 = (undefined4 *)local_84;" (assignment_expression "local_d8 = (undefined4 *)local_84" (identifier "local_d8") (= "=") (cast_expression "(undefined4 *)local_84" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_84"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -8) = 0" (pointer_expression "*(undefined4 *)((int)piVar27 + -8)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;" (assignment_expression "*(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4" (pointer_expression "*(int *)((int)piVar27 + -0xc)" (* "*") (cast_expression "(int *)((int)piVar27 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "local_a0 + (int)local_a4" (identifier "local_a0") (+ "+") (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")))) (; ";")) (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_a4;" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_a4" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" (* "*") (cast_expression "(uint ***)((int)piVar27 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(undefined1 ***)((int)piVar27 + -0x14) = local_8c;" (assignment_expression "*(undefined1 ***)((int)piVar27 + -0x14) = local_8c" (pointer_expression "*(undefined1 ***)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined1 ***)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined1 ***" (type_identifier "undefined1") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x160662;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x160662" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x18)" (( "(") (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x160662")) (; ";")) (expression_statement "local_8c[0] = (undefined1 *)local_d8;" (assignment_expression "local_8c[0] = (undefined1 *)local_d8" (subscript_expression "local_8c[0]" (identifier "local_8c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(undefined1 *)local_d8" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_d8"))) (; ";")) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" (identifier "FUN_000513a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined1 ***)((int)piVar27 + -0x10) = local_8c;" (assignment_expression "*(undefined1 ***)((int)piVar27 + -0x10) = local_8c" (pointer_expression "*(undefined1 ***)((int)piVar27 + -0x10)" (* "*") (cast_expression "(undefined1 ***)((int)piVar27 + -0x10)" (( "(") (type_descriptor "undefined1 ***" (type_identifier "undefined1") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "*(int *****)((int)piVar27 + -0x14) = &local_74;" (assignment_expression "*(int *****)((int)piVar27 + -0x14) = &local_74" (pointer_expression "*(int *****)((int)piVar27 + -0x14)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0x14)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_74" (& "&") (identifier "local_74"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x18) = 0x160674;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x18) = 0x160674" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x18)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x18)" (( "(") (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x160674")) (; ";")) (expression_statement "FUN_0009e270();" (call_expression "FUN_0009e270()" (identifier "FUN_0009e270") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar11 = local_3c[0];" (assignment_expression "ppuVar11 = local_3c[0]" (identifier "ppuVar11") (= "=") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pppiVar18 = local_44;" (assignment_expression "pppiVar18 = local_44" (identifier "pppiVar18") (= "=") (identifier "local_44")) (; ";")) (expression_statement "local_dc = local_74;" (assignment_expression "local_dc = local_74" (identifier "local_dc") (= "=") (identifier "local_74")) (; ";")) (expression_statement "pppuVar22 = &local_6c;" (assignment_expression "pppuVar22 = &local_6c" (identifier "pppuVar22") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (if_statement "if ((uint ***)local_74 == &local_6c) {\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }\n        else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }" (if "if") (parenthesized_expression "((uint ***)local_74 == &local_6c)" (( "(") (binary_expression "(uint ***)local_74 == &local_6c" (cast_expression "(uint ***)local_74" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_74")) (== "==") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) () ")")) (compound_statement "{\n          if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }\n          *(undefined1 *)((int)local_44 + (int)local_70) = 0;\n          local_40 = local_70;\n        }" ({ "{") (if_statement "if ((int ***)local_70 != (int ***)0x0) {\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }" (if "if") (parenthesized_expression "((int ***)local_70 != (int ***)0x0)" (( "(") (binary_expression "(int ***)local_70 != (int ***)0x0" (cast_expression "(int ***)local_70" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_70")) (!= "!=") (cast_expression "(int ***)0x0" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }\n            local_dc = (int ***)&local_6c;\n            *(uint ***)((int)piVar27 + -0x10) = local_70;\n            *(uint ****)((int)piVar27 + -0x14) = &local_6c;\n            *(int ****)((int)piVar27 + -0x18) = local_44;\n            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;\n            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));\n            pppuVar22 = (uint ***)local_dc;\n          }" ({ "{") (if_statement "if ((int ***)local_70 == (int ***)0x1) {\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }" (if "if") (parenthesized_expression "((int ***)local_70 == (int ***)0x1)" (( "(") (binary_expression "(int ***)local_70 == (int ***)0x1" (cast_expression "(int ***)local_70" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_70")) (== "==") (cast_expression "(int ***)0x1" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n              *(undefined1 *)local_44 = local_6c._0_1_;\n              local_40 = local_70;\n              *(undefined1 *)((int)local_44 + 1) = 0;\n              goto LAB_001606d8;\n            }" ({ "{") (expression_statement "*(undefined1 *)local_44 = local_6c._0_1_;" (assignment_expression "*(undefined1 *)local_44 = local_6c._0_1_" (pointer_expression "*(undefined1 *)local_44" (* "*") (cast_expression "(undefined1 *)local_44" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) (= "=") (field_expression "local_6c._0_1_" (identifier "local_6c") (. ".") (field_identifier "_0_1_"))) (; ";")) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" (identifier "local_40") (= "=") (identifier "local_70")) (; ";")) (expression_statement "*(undefined1 *)((int)local_44 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)local_44 + 1) = 0" (pointer_expression "*(undefined1 *)((int)local_44 + 1)" (* "*") (cast_expression "(undefined1 *)((int)local_44 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_001606d8;" (goto "goto") (statement_identifier "LAB_001606d8") (; ";")) (} "}"))) (expression_statement "local_dc = (int ***)&local_6c;" (assignment_expression "local_dc = (int ***)&local_6c" (identifier "local_dc") (= "=") (cast_expression "(int ***)&local_6c" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "&local_6c" (& "&") (identifier "local_6c")))) (; ";")) (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_70;" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_70" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" (* "*") (cast_expression "(uint ***)((int)piVar27 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_70")) (; ";")) (expression_statement "*(uint ****)((int)piVar27 + -0x14) = &local_6c;" (assignment_expression "*(uint ****)((int)piVar27 + -0x14) = &local_6c" (pointer_expression "*(uint ****)((int)piVar27 + -0x14)" (* "*") (cast_expression "(uint ****)((int)piVar27 + -0x14)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "*(int ****)((int)piVar27 + -0x18) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0x18) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0x18)" (* "*") (cast_expression "(int ****)((int)piVar27 + -0x18)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x18)" (( "(") (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_44")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x1c) = 0x161301" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x1c)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x1c)" (( "(") (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x161301")) (; ";")) (expression_statement "memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10));" (call_expression "memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10))" (identifier "memcpy") (argument_list "(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),\n                   *(size_t *)((int)piVar27 + -0x10))" (( "(") (pointer_expression "*(void **)((int)piVar27 + -0x18)" (* "*") (cast_expression "(void **)((int)piVar27 + -0x18)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x18)" (( "(") (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x18")) () ")")))) (, ",") (pointer_expression "*(void **)((int)piVar27 + -0x14)" (* "*") (cast_expression "(void **)((int)piVar27 + -0x14)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)piVar27 + -0x10)" (* "*") (cast_expression "(size_t *)((int)piVar27 + -0x10)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (expression_statement "pppuVar22 = (uint ***)local_dc;" (assignment_expression "pppuVar22 = (uint ***)local_dc" (identifier "pppuVar22") (= "=") (cast_expression "(uint ***)local_dc" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_dc"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)local_44 + (int)local_70) = 0;" (assignment_expression "*(undefined1 *)((int)local_44 + (int)local_70) = 0" (pointer_expression "*(undefined1 *)((int)local_44 + (int)local_70)" (* "*") (cast_expression "(undefined1 *)((int)local_44 + (int)local_70)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + (int)local_70)" (( "(") (binary_expression "(int)local_44 + (int)local_70" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" (identifier "local_40") (= "=") (identifier "local_70")) (; ";")) (} "}")) (else_clause "else {\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }" (else "else") (compound_statement "{\n          local_e8 = local_6c;\n          if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }\n          local_3c[0] = local_6c;\n          local_40 = local_70;\n          local_44 = local_74;\n          pppuVar22 = &local_6c;\n          local_74 = (int ***)&local_6c;\n        }" ({ "{") (expression_statement "local_e8 = local_6c;" (assignment_expression "local_e8 = local_6c" (identifier "local_e8") (= "=") (identifier "local_6c")) (; ";")) (if_statement "if ((int ****)local_44 != (int ****)local_d4) {\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }" (if "if") (parenthesized_expression "((int ****)local_44 != (int ****)local_d4)" (( "(") (binary_expression "(int ****)local_44 != (int ****)local_d4" (cast_expression "(int ****)local_44" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_44")) (!= "!=") (cast_expression "(int ****)local_d4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_d4"))) () ")")) (compound_statement "{\n            local_40 = local_70;\n            local_ec = local_3c[0];\n            local_3c[0] = local_6c;\n            local_44 = local_74;\n            if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }\n          }" ({ "{") (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" (identifier "local_40") (= "=") (identifier "local_70")) (; ";")) (expression_statement "local_ec = local_3c[0];" (assignment_expression "local_ec = local_3c[0]" (identifier "local_ec") (= "=") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_3c[0] = local_6c;" (assignment_expression "local_3c[0] = local_6c" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "local_44 = local_74;" (assignment_expression "local_44 = local_74" (identifier "local_44") (= "=") (identifier "local_74")) (; ";")) (if_statement "if ((uint ***)pppiVar18 != (uint ***)0x0) {\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }" (if "if") (parenthesized_expression "((uint ***)pppiVar18 != (uint ***)0x0)" (( "(") (binary_expression "(uint ***)pppiVar18 != (uint ***)0x0" (cast_expression "(uint ***)pppiVar18" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "pppiVar18")) (!= "!=") (cast_expression "(uint ***)0x0" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              local_74 = pppiVar18;\n              local_6c = ppuVar11;\n              goto LAB_001606d8;\n            }" ({ "{") (expression_statement "local_74 = pppiVar18;" (assignment_expression "local_74 = pppiVar18" (identifier "local_74") (= "=") (identifier "pppiVar18")) (; ";")) (expression_statement "local_6c = ppuVar11;" (assignment_expression "local_6c = ppuVar11" (identifier "local_6c") (= "=") (identifier "ppuVar11")) (; ";")) (goto_statement "goto LAB_001606d8;" (goto "goto") (statement_identifier "LAB_001606d8") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_3c[0] = local_6c;" (assignment_expression "local_3c[0] = local_6c" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" (identifier "local_40") (= "=") (identifier "local_70")) (; ";")) (expression_statement "local_44 = local_74;" (assignment_expression "local_44 = local_74" (identifier "local_44") (= "=") (identifier "local_74")) (; ";")) (expression_statement "pppuVar22 = &local_6c;" (assignment_expression "pppuVar22 = &local_6c" (identifier "pppuVar22") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "local_74 = (int ***)&local_6c;" (assignment_expression "local_74 = (int ***)&local_6c" (identifier "local_74") (= "=") (cast_expression "(int ***)&local_6c" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "&local_6c" (& "&") (identifier "local_6c")))) (; ";")) (} "}")))) (labeled_statement "LAB_001606d8:\n        local_70 = (uint **)0x0;" (statement_identifier "LAB_001606d8") (: ":") (expression_statement "local_70 = (uint **)0x0;" (assignment_expression "local_70 = (uint **)0x0" (identifier "local_70") (= "=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "*(undefined1 *)local_74 = 0;" (assignment_expression "*(undefined1 *)local_74 = 0" (pointer_expression "*(undefined1 *)local_74" (* "*") (cast_expression "(undefined1 *)local_74" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_74"))) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uint ***)local_74 != pppuVar22) {\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }" (if "if") (parenthesized_expression "((uint ***)local_74 != pppuVar22)" (( "(") (binary_expression "(uint ***)local_74 != pppuVar22" (cast_expression "(uint ***)local_74" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_74")) (!= "!=") (identifier "pppuVar22")) () ")")) (compound_statement "{\n          *(int ****)((int)piVar27 + -0x18) = local_74;\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;\n          FUN_001e6db0();\n        }" ({ "{") (expression_statement "*(int ****)((int)piVar27 + -0x18) = local_74;" (assignment_expression "*(int ****)((int)piVar27 + -0x18) = local_74" (pointer_expression "*(int ****)((int)piVar27 + -0x18)" (* "*") (cast_expression "(int ****)((int)piVar27 + -0x18)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x18)" (( "(") (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_74")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x1c)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x1c)" (( "(") (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x1606f8")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar28 = (undefined1 *)((int)piVar27 + -8);" (assignment_expression "puVar28 = (undefined1 *)((int)piVar27 + -8)" (identifier "puVar28") (= "=") (cast_expression "(undefined1 *)((int)piVar27 + -8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (; ";")) (if_statement "if ((undefined4 *)local_8c[0] != local_d8) {\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }" (if "if") (parenthesized_expression "((undefined4 *)local_8c[0] != local_d8)" (( "(") (binary_expression "(undefined4 *)local_8c[0] != local_d8" (cast_expression "(undefined4 *)local_8c[0]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_8c[0]" (identifier "local_8c") ([ "[") (number_literal "0") (] "]"))) (!= "!=") (identifier "local_d8")) () ")")) (compound_statement "{\n          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];\n          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;\n          FUN_001e6db0();\n          puVar28 = (undefined1 *)((int)piVar27 + -8);\n        }" ({ "{") (expression_statement "*(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];" (assignment_expression "*(undefined1 **)((int)piVar27 + -0x18) = local_8c[0]" (pointer_expression "*(undefined1 **)((int)piVar27 + -0x18)" (* "*") (cast_expression "(undefined1 **)((int)piVar27 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x18)" (( "(") (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (subscript_expression "local_8c[0]" (identifier "local_8c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x1c) = 0x160718" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x1c)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x1c)" (( "(") (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x160718")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar28 = (undefined1 *)((int)piVar27 + -8);" (assignment_expression "puVar28 = (undefined1 *)((int)piVar27 + -8)" (identifier "puVar28") (= "=") (cast_expression "(undefined1 *)((int)piVar27 + -8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "piVar27 = (int *)puVar28;" (assignment_expression "piVar27 = (int *)puVar28" (identifier "piVar27") (= "=") (cast_expression "(int *)puVar28" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar28"))) (; ";")) (if_statement "if (local_a4 != local_9c) {\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }" (if "if") (parenthesized_expression "(local_a4 != local_9c)" (( "(") (binary_expression "local_a4 != local_9c" (identifier "local_a4") (!= "!=") (identifier "local_9c")) () ")")) (compound_statement "{\n        *(uint ***)((int)piVar27 + -0x10) = local_a4;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;\n        FUN_001e6db0();\n      }" ({ "{") (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_a4;" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_a4" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" (* "*") (cast_expression "(uint ***)((int)piVar27 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16073a" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16073a")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pppuVar22 = local_b4;" (assignment_expression "pppuVar22 = local_b4" (identifier "pppuVar22") (= "=") (identifier "local_b4")) (; ";")) (if_statement "if (puVar14[2] == -4) {\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }\n      else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }" (if "if") (parenthesized_expression "(puVar14[2] == -4)" (( "(") (binary_expression "puVar14[2] == -4" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "-4")) () ")")) (compound_statement "{\n        piVar7 = (int *)puVar14[6];\n        local_2c._0_4_ = piVar7[3];\n        local_2c._4_4_ = piVar7[4];\n        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);\n        if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }\n      }" ({ "{") (expression_statement "piVar7 = (int *)puVar14[6];" (assignment_expression "piVar7 = (int *)puVar14[6]" (identifier "piVar7") (= "=") (cast_expression "(int *)puVar14[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[6]" (identifier "puVar14") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "local_2c._0_4_ = piVar7[3];" (assignment_expression "local_2c._0_4_ = piVar7[3]" (field_expression "local_2c._0_4_" (identifier "local_2c") (. ".") (field_identifier "_0_4_")) (= "=") (subscript_expression "piVar7[3]" (identifier "piVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_2c._4_4_ = piVar7[4];" (assignment_expression "local_2c._4_4_ = piVar7[4]" (field_expression "local_2c._4_4_" (identifier "local_2c") (. ".") (field_identifier "_4_4_")) (= "=") (subscript_expression "piVar7[4]" (identifier "piVar7") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "ppuVar5 = *(undefined ***)(*piVar7 + 0xc);" (assignment_expression "ppuVar5 = *(undefined ***)(*piVar7 + 0xc)" (identifier "ppuVar5") (= "=") (pointer_expression "*(undefined ***)(*piVar7 + 0xc)" (* "*") (cast_expression "(undefined ***)(*piVar7 + 0xc)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar7 + 0xc)" (( "(") (binary_expression "*piVar7 + 0xc" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (ppuVar5 == local_b8 + -0xc6e88) {\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }\n        else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }" (if "if") (parenthesized_expression "(ppuVar5 == local_b8 + -0xc6e88)" (( "(") (binary_expression "ppuVar5 == local_b8 + -0xc6e88" (identifier "ppuVar5") (== "==") (binary_expression "local_b8 + -0xc6e88" (identifier "local_b8") (+ "+") (number_literal "-0xc6e88"))) () ")")) (compound_statement "{\n          local_24 = *(undefined8 *)(piVar7 + 9);\n          local_2c = *(undefined8 *)(piVar7 + 3);\n        }" ({ "{") (expression_statement "local_24 = *(undefined8 *)(piVar7 + 9);" (assignment_expression "local_24 = *(undefined8 *)(piVar7 + 9)" (identifier "local_24") (= "=") (pointer_expression "*(undefined8 *)(piVar7 + 9)" (* "*") (cast_expression "(undefined8 *)(piVar7 + 9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar7 + 9)" (( "(") (binary_expression "piVar7 + 9" (identifier "piVar7") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (expression_statement "local_2c = *(undefined8 *)(piVar7 + 3);" (assignment_expression "local_2c = *(undefined8 *)(piVar7 + 3)" (identifier "local_2c") (= "=") (pointer_expression "*(undefined8 *)(piVar7 + 3)" (* "*") (cast_expression "(undefined8 *)(piVar7 + 3)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar7 + 3)" (( "(") (binary_expression "piVar7 + 3" (identifier "piVar7") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }" (else "else") (compound_statement "{\n          *(int **)((int)piVar27 + -0x10) = piVar7;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;\n          local_24 = (*(code *)ppuVar5)();\n        }" ({ "{") (expression_statement "*(int **)((int)piVar27 + -0x10) = piVar7;" (assignment_expression "*(int **)((int)piVar27 + -0x10) = piVar7" (pointer_expression "*(int **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar7")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16140c" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16140c")) (; ";")) (expression_statement "local_24 = (*(code *)ppuVar5)();" (assignment_expression "local_24 = (*(code *)ppuVar5)()" (identifier "local_24") (= "=") (call_expression "(*(code *)ppuVar5)()" (parenthesized_expression "(*(code *)ppuVar5)" (( "(") (pointer_expression "*(code *)ppuVar5" (* "*") (cast_expression "(code *)ppuVar5" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar5"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }" (else "else") (compound_statement "{\n        iVar13 = (int)*local_b4;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = local_b4;\n                    \n        pcVar3 = *(code **)(iVar13 + 0x3c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;\n        local_2c = (*pcVar3)();\n        iVar13 = (int)*pppuVar22;\n        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;\n        pcVar3 = *(code **)(iVar13 + 0x5c);\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;\n        local_24 = (*pcVar3)();\n      }" ({ "{") (expression_statement "iVar13 = (int)*local_b4;" (assignment_expression "iVar13 = (int)*local_b4" (identifier "iVar13") (= "=") (cast_expression "(int)*local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*local_b4" (* "*") (identifier "local_b4")))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_b4;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_b4" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(uint ****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_b4")) (; ";")) (expression_statement "pcVar3 = *(code **)(iVar13 + 0x3c);" (assignment_expression "pcVar3 = *(code **)(iVar13 + 0x3c)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(iVar13 + 0x3c)" (* "*") (cast_expression "(code **)(iVar13 + 0x3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 0x3c)" (( "(") (binary_expression "iVar13 + 0x3c" (identifier "iVar13") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160757;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160757" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160757")) (; ";")) (expression_statement "local_2c = (*pcVar3)();" (assignment_expression "local_2c = (*pcVar3)()" (identifier "local_2c") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar13 = (int)*pppuVar22;" (assignment_expression "iVar13 = (int)*pppuVar22" (identifier "iVar13") (= "=") (cast_expression "(int)*pppuVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppuVar22" (* "*") (identifier "pppuVar22")))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = pppuVar22;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = pppuVar22" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(uint ****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pppuVar22")) (; ";")) (expression_statement "pcVar3 = *(code **)(iVar13 + 0x5c);" (assignment_expression "pcVar3 = *(code **)(iVar13 + 0x5c)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(iVar13 + 0x5c)" (* "*") (cast_expression "(code **)(iVar13 + 0x5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 0x5c)" (( "(") (binary_expression "iVar13 + 0x5c" (identifier "iVar13") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160767;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160767" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160767")) (; ";")) (expression_statement "local_24 = (*pcVar3)();" (assignment_expression "local_24 = (*pcVar3)()" (identifier "local_24") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar13 = (int)local_b4[7];" (assignment_expression "iVar13 = (int)local_b4[7]" (identifier "iVar13") (= "=") (cast_expression "(int)local_b4[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_b4[7]" (identifier "local_b4") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (iVar13 != 0) {\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;\n        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;\n        FUN_000679d0();\n      }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c" (pointer_expression "*(int *)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "iVar13 + 0x1c" (identifier "iVar13") (+ "+") (number_literal "0x1c"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160791;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160791" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160791")) (; ";")) (expression_statement "FUN_000679d0();" (call_expression "FUN_000679d0()" (identifier "FUN_000679d0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(uint ***)((int)piVar27 + -0xc) = local_b4[1];" (assignment_expression "*(uint ***)((int)piVar27 + -0xc) = local_b4[1]" (pointer_expression "*(uint ***)((int)piVar27 + -0xc)" (* "*") (cast_expression "(uint ***)((int)piVar27 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (subscript_expression "local_b4[1]" (identifier "local_b4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(int *)((int)piVar27 + -0x10) = param_1;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = param_1" (pointer_expression "*(int *)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1607a8")) (; ";")) (expression_statement "cVar12 = FUN_0015b690();" (assignment_expression "cVar12 = FUN_0015b690()" (identifier "cVar12") (= "=") (call_expression "FUN_0015b690()" (identifier "FUN_0015b690") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar12 == '\0') {\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }\n      else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }" (if "if") (parenthesized_expression "(cVar12 == '\0')" (( "(") (binary_expression "cVar12 == '\0'" (identifier "cVar12") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;\n      }" ({ "{") (labeled_statement "LAB_001610b0:\n        puVar16 = (undefined4 *)*puVar14;" (statement_identifier "LAB_001610b0") (: ":") (expression_statement "puVar16 = (undefined4 *)*puVar14;" (assignment_expression "puVar16 = (undefined4 *)*puVar14" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)*puVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (; ";"))) (} "}")) (else_clause "else {\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }" (else "else") (compound_statement "{\n        iVar13 = *(int *)(param_1 + 0x30);\n        if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }\n        puVar26 = (undefined4 *)local_114[1];\n        puVar16 = local_114;\n        if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }\nLAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;\n        param_11[2] = param_11[2] + -1;\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;\n        FUN_001e9f90();\n        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;\n        FUN_001e6db0();\n      }" ({ "{") (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x34) != iVar13) {\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x34) != iVar13)" (( "(") (binary_expression "*(int *)(param_1 + 0x34) != iVar13" (pointer_expression "*(int *)(param_1 + 0x34)" (* "*") (cast_expression "(int *)(param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (identifier "iVar13")) () ")")) (compound_statement "{\n          if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }\n          goto LAB_001610b0;\n        }" ({ "{") (if_statement "if ((uint)local_cc != 0) {\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }" (if "if") (parenthesized_expression "((uint)local_cc != 0)" (( "(") (binary_expression "(uint)local_cc != 0" (cast_expression "(uint)local_cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_cc")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar25 = 0;\n            while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }\n            if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }\n          }" ({ "{") (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" (identifier "uVar25") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);\n              uVar15 = *puVar16;\n              if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }\n              if (iVar13 == 0) break;\n              uVar25 = uVar25 + 1;\n              if (uVar25 == (uint)local_cc) goto LAB_001610b0;\n              iVar13 = *(int *)(param_1 + 0x30);\n            }" ({ "{") (expression_statement "puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);" (assignment_expression "puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20)" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)(iVar13 + uVar25 * 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + uVar25 * 0x20)" (( "(") (binary_expression "iVar13 + uVar25 * 0x20" (identifier "iVar13") (+ "+") (binary_expression "uVar25 * 0x20" (identifier "uVar25") (* "*") (number_literal "0x20"))) () ")")))) (; ";")) (expression_statement "uVar15 = *puVar16;" (assignment_expression "uVar15 = *puVar16" (identifier "uVar15") (= "=") (pointer_expression "*puVar16" (* "*") (identifier "puVar16"))) (; ";")) (if_statement "if (*(char *)(puVar16 + 6) == '\0') {\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }\n              else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }" (if "if") (parenthesized_expression "(*(char *)(puVar16 + 6) == '\0')" (( "(") (binary_expression "*(char *)(puVar16 + 6) == '\0'" (pointer_expression "*(char *)(puVar16 + 6)" (* "*") (cast_expression "(char *)(puVar16 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + 6)" (( "(") (binary_expression "puVar16 + 6" (identifier "puVar16") (+ "+") (number_literal "6")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;\n                *(int ****)((int)piVar27 + -0x10) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;\n                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));\n              }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(int ****)((int)piVar27 + -0x10) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0x10) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int ****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_44")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1607f0")) (; ";")) (expression_statement "iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));" (assignment_expression "iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc))" (identifier "iVar13") (= "=") (call_expression "strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc))" (identifier "strcmp") (argument_list "(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc))" (( "(") (pointer_expression "*(char **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(char **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)((int)piVar27 + -0xc)" (* "*") (cast_expression "(char **)((int)piVar27 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }" (else "else") (compound_statement "{\n                *(undefined4 *)((int)piVar27 + -8) = 0;\n                *(int ****)((int)piVar27 + -0xc) = local_44;\n                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;\n                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));\n              }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar27 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -8) = 0" (pointer_expression "*(undefined4 *)((int)piVar27 + -8)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int ****)((int)piVar27 + -0xc) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0xc) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0xc)" (* "*") (cast_expression "(int ****)((int)piVar27 + -0xc)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_44")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x10) = uVar15;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x10) = uVar15" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160835;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160835" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160835")) (; ";")) (expression_statement "iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8));" (assignment_expression "iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8))" (identifier "iVar13") (= "=") (call_expression "fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8))" (identifier "fnmatch") (argument_list "(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),\n                                 *(int *)((int)piVar27 + -8))" (( "(") (pointer_expression "*(char **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(char **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)((int)piVar27 + -0xc)" (* "*") (cast_expression "(char **)((int)piVar27 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(int *)((int)piVar27 + -8)" (* "*") (cast_expression "(int *)((int)piVar27 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar13 == 0) break;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar25 = uVar25 + 1;" (assignment_expression "uVar25 = uVar25 + 1" (identifier "uVar25") (= "=") (binary_expression "uVar25 + 1" (identifier "uVar25") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar25 == (uint)local_cc) goto LAB_001610b0;" (if "if") (parenthesized_expression "(uVar25 == (uint)local_cc)" (( "(") (binary_expression "uVar25 == (uint)local_cc" (identifier "uVar25") (== "==") (cast_expression "(uint)local_cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_cc"))) () ")")) (goto_statement "goto LAB_001610b0;" (goto "goto") (statement_identifier "LAB_001610b0") (; ";"))) (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (uVar25 < (uint)local_cc) {\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }" (if "if") (parenthesized_expression "(uVar25 < (uint)local_cc)" (( "(") (binary_expression "uVar25 < (uint)local_cc" (identifier "uVar25") (< "<") (cast_expression "(uint)local_cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_cc"))) () ")")) (compound_statement "{\n              puVar16 = local_114;\n              if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }\n              puVar26 = (undefined4 *)puVar16[1];\n              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;\n              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;\n              FUN_00163d60();\n              goto LAB_001612ad;\n            }" ({ "{") (expression_statement "puVar16 = local_114;" (assignment_expression "puVar16 = local_114" (identifier "puVar16") (= "=") (identifier "local_114")) (; ";")) (if_statement "if (uVar25 < local_f4) {\n                puVar16 = local_114 + uVar25 * 3;\n              }" (if "if") (parenthesized_expression "(uVar25 < local_f4)" (( "(") (binary_expression "uVar25 < local_f4" (identifier "uVar25") (< "<") (identifier "local_f4")) () ")")) (compound_statement "{\n                puVar16 = local_114 + uVar25 * 3;\n              }" ({ "{") (expression_statement "puVar16 = local_114 + uVar25 * 3;" (assignment_expression "puVar16 = local_114 + uVar25 * 3" (identifier "puVar16") (= "=") (binary_expression "local_114 + uVar25 * 3" (identifier "local_114") (+ "+") (binary_expression "uVar25 * 3" (identifier "uVar25") (* "*") (number_literal "3")))) (; ";")) (} "}"))) (expression_statement "puVar26 = (undefined4 *)puVar16[1];" (assignment_expression "puVar26 = (undefined4 *)puVar16[1]" (identifier "puVar26") (= "=") (cast_expression "(undefined4 *)puVar16[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar16[1]" (identifier "puVar16") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;" (if "if") (parenthesized_expression "(puVar26 != (undefined4 *)puVar16[2])" (( "(") (binary_expression "puVar26 != (undefined4 *)puVar16[2]" (identifier "puVar26") (!= "!=") (cast_expression "(undefined4 *)puVar16[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar16[2]" (identifier "puVar16") ([ "[") (number_literal "2") (] "]")))) () ")")) (goto_statement "goto LAB_00161250;" (goto "goto") (statement_identifier "LAB_00161250") (; ";"))) (expression_statement "*(undefined4 ***)((int)piVar27 + -8) = &local_5c;" (assignment_expression "*(undefined4 ***)((int)piVar27 + -8) = &local_5c" (pointer_expression "*(undefined4 ***)((int)piVar27 + -8)" (* "*") (cast_expression "(undefined4 ***)((int)piVar27 + -8)" (( "(") (type_descriptor "undefined4 ***" (type_identifier "undefined4") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "*(undefined4 **)((int)piVar27 + -0xc) = puVar26;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0xc) = puVar26" (pointer_expression "*(undefined4 **)((int)piVar27 + -0xc)" (* "*") (cast_expression "(undefined4 **)((int)piVar27 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar26")) (; ";")) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar16;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar16" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar16")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160881;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160881" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160881")) (; ";")) (expression_statement "FUN_00163d60();" (call_expression "FUN_00163d60()" (identifier "FUN_00163d60") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_001612ad;" (goto "goto") (statement_identifier "LAB_001612ad") (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_001610b0;" (goto "goto") (statement_identifier "LAB_001610b0") (; ";")) (} "}"))) (expression_statement "puVar26 = (undefined4 *)local_114[1];" (assignment_expression "puVar26 = (undefined4 *)local_114[1]" (identifier "puVar26") (= "=") (cast_expression "(undefined4 *)local_114[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_114[1]" (identifier "local_114") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar16 = local_114;" (assignment_expression "puVar16 = local_114" (identifier "puVar16") (= "=") (identifier "local_114")) (; ";")) (if_statement "if (puVar26 == (undefined4 *)local_114[2]) {\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }\n        else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }" (if "if") (parenthesized_expression "(puVar26 == (undefined4 *)local_114[2])" (( "(") (binary_expression "puVar26 == (undefined4 *)local_114[2]" (identifier "puVar26") (== "==") (cast_expression "(undefined4 *)local_114[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_114[2]" (identifier "local_114") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;\n          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;\n          *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;\n          FUN_00163d60();\n        }" ({ "{") (expression_statement "*(undefined4 ***)((int)piVar27 + -8) = &local_5c;" (assignment_expression "*(undefined4 ***)((int)piVar27 + -8) = &local_5c" (pointer_expression "*(undefined4 ***)((int)piVar27 + -8)" (* "*") (cast_expression "(undefined4 ***)((int)piVar27 + -8)" (( "(") (type_descriptor "undefined4 ***" (type_identifier "undefined4") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "*(undefined4 **)((int)piVar27 + -0xc) = puVar26;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0xc) = puVar26" (pointer_expression "*(undefined4 **)((int)piVar27 + -0xc)" (* "*") (cast_expression "(undefined4 **)((int)piVar27 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar26")) (; ";")) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = local_114;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = local_114" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_114")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x161485;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x161485" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x161485")) (; ";")) (expression_statement "FUN_00163d60();" (call_expression "FUN_00163d60()" (identifier "FUN_00163d60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }" (else "else") (compound_statement "{\nLAB_00161250:\n          *puVar26 = local_5c;\n          puVar26[1] = local_58;\n          puVar26[2] = local_54;\n          puVar26[3] = local_50;\n          puVar26[4] = local_4c;\n          puVar26[5] = local_48;\n          puVar26[6] = puVar26 + 8;\n          *(undefined4 *)((int)piVar27 + -4) = 0;\n          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);\n          *(int ****)((int)piVar27 + -0xc) = local_44;\n          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;\n                    \n          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;\n          FUN_000513a0();\n          *(undefined8 *)(puVar26 + 0xc) = local_2c;\n          *(undefined8 *)(puVar26 + 0xe) = local_24;\n          puVar16[1] = puVar16[1] + 0x40;\n        }" ({ "{") (labeled_statement "LAB_00161250:\n          *puVar26 = local_5c;" (statement_identifier "LAB_00161250") (: ":") (expression_statement "*puVar26 = local_5c;" (assignment_expression "*puVar26 = local_5c" (pointer_expression "*puVar26" (* "*") (identifier "puVar26")) (= "=") (identifier "local_5c")) (; ";"))) (expression_statement "puVar26[1] = local_58;" (assignment_expression "puVar26[1] = local_58" (subscript_expression "puVar26[1]" (identifier "puVar26") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "puVar26[2] = local_54;" (assignment_expression "puVar26[2] = local_54" (subscript_expression "puVar26[2]" (identifier "puVar26") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_54")) (; ";")) (expression_statement "puVar26[3] = local_50;" (assignment_expression "puVar26[3] = local_50" (subscript_expression "puVar26[3]" (identifier "puVar26") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "puVar26[4] = local_4c;" (assignment_expression "puVar26[4] = local_4c" (subscript_expression "puVar26[4]" (identifier "puVar26") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "puVar26[5] = local_48;" (assignment_expression "puVar26[5] = local_48" (subscript_expression "puVar26[5]" (identifier "puVar26") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar26[6] = puVar26 + 8;" (assignment_expression "puVar26[6] = puVar26 + 8" (subscript_expression "puVar26[6]" (identifier "puVar26") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "puVar26 + 8" (identifier "puVar26") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar27 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar27 + -4)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -4)" (( "(") (binary_expression "(int)piVar27 + -4" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);" (assignment_expression "*(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44)" (pointer_expression "*(undefined1 **)((int)piVar27 + -8)" (* "*") (cast_expression "(undefined1 **)((int)piVar27 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (cast_expression "(undefined1 *)((int)local_40 + (int)local_44)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_40 + (int)local_44)" (( "(") (binary_expression "(int)local_40 + (int)local_44" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (+ "+") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))) () ")")))) (; ";")) (expression_statement "*(int ****)((int)piVar27 + -0xc) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0xc) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0xc)" (* "*") (cast_expression "(int ****)((int)piVar27 + -0xc)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_44")) (; ";")) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar26 + 6" (identifier "puVar26") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16128e" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16128e")) (; ";")) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" (identifier "FUN_000513a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined8 *)(puVar26 + 0xc) = local_2c;" (assignment_expression "*(undefined8 *)(puVar26 + 0xc) = local_2c" (pointer_expression "*(undefined8 *)(puVar26 + 0xc)" (* "*") (cast_expression "(undefined8 *)(puVar26 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xc)" (( "(") (binary_expression "puVar26 + 0xc" (identifier "puVar26") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "*(undefined8 *)(puVar26 + 0xe) = local_24;" (assignment_expression "*(undefined8 *)(puVar26 + 0xe) = local_24" (pointer_expression "*(undefined8 *)(puVar26 + 0xe)" (* "*") (cast_expression "(undefined8 *)(puVar26 + 0xe)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xe)" (( "(") (binary_expression "puVar26 + 0xe" (identifier "puVar26") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar16[1] = puVar16[1] + 0x40;" (assignment_expression "puVar16[1] = puVar16[1] + 0x40" (subscript_expression "puVar16[1]" (identifier "puVar16") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "puVar16[1] + 0x40" (subscript_expression "puVar16[1]" (identifier "puVar16") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x40"))) (; ";")) (} "}")))) (labeled_statement "LAB_001612ad:\n        puVar16 = (undefined4 *)*puVar14;" (statement_identifier "LAB_001612ad") (: ":") (expression_statement "puVar16 = (undefined4 *)*puVar14;" (assignment_expression "puVar16 = (undefined4 *)*puVar14" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)*puVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (; ";"))) (expression_statement "param_11[2] = param_11[2] + -1;" (assignment_expression "param_11[2] = param_11[2] + -1" (subscript_expression "param_11[2]" (identifier "param_11") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_11[2] + -1" (subscript_expression "param_11[2]" (identifier "param_11") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar14")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1612c5")) (; ";")) (expression_statement "FUN_001e9f90();" (call_expression "FUN_001e9f90()" (identifier "FUN_001e9f90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = puVar14;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = puVar14" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar14")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1612d5")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if ((int ****)local_44 != (int ****)local_d4) {\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }" (if "if") (parenthesized_expression "((int ****)local_44 != (int ****)local_d4)" (( "(") (binary_expression "(int ****)local_44 != (int ****)local_d4" (cast_expression "(int ****)local_44" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_44")) (!= "!=") (cast_expression "(int ****)local_d4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_d4"))) () ")")) (compound_statement "{\n        *(int ****)((int)piVar27 + -0x10) = local_44;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;\n        FUN_001e6db0();\n      }" ({ "{") (expression_statement "*(int ****)((int)piVar27 + -0x10) = local_44;" (assignment_expression "*(int ****)((int)piVar27 + -0x10) = local_44" (pointer_expression "*(int ****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int ****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_44")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1610cc")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar14 = puVar16;" (assignment_expression "puVar14 = puVar16" (identifier "puVar14") (= "=") (identifier "puVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar16 != param_11)" (( "(") (binary_expression "puVar16 != param_11" (identifier "puVar16") (!= "!=") (identifier "param_11")) () ")")) (; ";")) (} "}"))) (expression_statement "local_ec = (uint **)0x0;" (assignment_expression "local_ec = (uint **)0x0" (identifier "local_ec") (= "=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_cc = *param_7;" (assignment_expression "local_cc = *param_7" (identifier "local_cc") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "local_d8 = local_114 + 1;" (assignment_expression "local_d8 = local_114 + 1" (identifier "local_d8") (= "=") (binary_expression "local_114 + 1" (identifier "local_114") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_dc = (int ***)(local_b8 + -0x2d01);" (assignment_expression "local_dc = (int ***)(local_b8 + -0x2d01)" (identifier "local_dc") (= "=") (cast_expression "(int ***)(local_b8 + -0x2d01)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(local_b8 + -0x2d01)" (( "(") (binary_expression "local_b8 + -0x2d01" (identifier "local_b8") (+ "+") (number_literal "-0x2d01")) () ")")))) (; ";")) (expression_statement "local_b4 = (uint ***)(local_e4 - 1);" (assignment_expression "local_b4 = (uint ***)(local_e4 - 1)" (identifier "local_b4") (= "=") (cast_expression "(uint ***)(local_e4 - 1)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(local_e4 - 1)" (( "(") (binary_expression "local_e4 - 1" (identifier "local_e4") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);" (assignment_expression "local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0)" (identifier "local_b0") (= "=") (binary_expression "(local_e0 - 1) + (uint)(local_e4 != 0)" (parenthesized_expression "(local_e0 - 1)" (( "(") (binary_expression "local_e0 - 1" (identifier "local_e0") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(local_e4 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_e4 != 0)" (( "(") (binary_expression "local_e4 != 0" (identifier "local_e4") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;" (assignment_expression "local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4" (identifier "local_f0") (= "=") (binary_expression "local_b0 & local_e0 | (uint)local_b4 & local_e4" (binary_expression "local_b0 & local_e0" (identifier "local_b0") (& "&") (identifier "local_e0")) (| "|") (binary_expression "(uint)local_b4 & local_e4" (cast_expression "(uint)local_b4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_b4")) (& "&") (identifier "local_e4")))) (; ";")) (expression_statement "local_11c = (int)local_b8 + -0xeb73d;" (assignment_expression "local_11c = (int)local_b8 + -0xeb73d" (identifier "local_11c") (= "=") (binary_expression "(int)local_b8 + -0xeb73d" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (+ "+") (number_literal "-0xeb73d"))) (; ";")) (expression_statement "local_e8 = (uint **)local_11c;" (assignment_expression "local_e8 = (uint **)local_11c" (identifier "local_e8") (= "=") (cast_expression "(uint **)local_11c" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_11c"))) (; ";")) (do_statement "do {\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    ppuVar5 = local_b8;\n    local_d4._0_4_ = (int ****)*local_d8;\n    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n    ppppiVar24 = (int ****)local_d8[-1];\n    if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }\nLAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);\n    local_ec = (uint **)((int)local_ec + 1);\n    local_d8 = local_d8 + 3;\n    if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }\n  }" ({ "{") (expression_statement "ppuVar5 = local_b8;" (assignment_expression "ppuVar5 = local_b8" (identifier "ppuVar5") (= "=") (identifier "local_b8")) (; ";")) (expression_statement "local_d4._0_4_ = (int ****)*local_d8;" (assignment_expression "local_d4._0_4_ = (int ****)*local_d8" (field_expression "local_d4._0_4_" (identifier "local_d4") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(int ****)*local_d8" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*local_d8" (* "*") (identifier "local_d8")))) (; ";")) (expression_statement "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);" (assignment_expression "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4)" (identifier "lVar30") (= "=") (call_expression "CONCAT44(local_d4._4_4_,(int ****)local_d4)" (identifier "CONCAT44") (argument_list "(local_d4._4_4_,(int ****)local_d4)" (( "(") (field_expression "local_d4._4_4_" (identifier "local_d4") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int ****)local_d4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_d4")) () ")")))) (; ";")) (expression_statement "ppppiVar24 = (int ****)local_d8[-1];" (assignment_expression "ppppiVar24 = (int ****)local_d8[-1]" (identifier "ppppiVar24") (= "=") (cast_expression "(int ****)local_d8[-1]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "local_d8[-1]" (identifier "local_d8") ([ "[") (number_literal "-1") (] "]")))) (; ";")) (if_statement "if ((int ****)local_d4 != ppppiVar24) {\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }" (if "if") (parenthesized_expression "((int ****)local_d4 != ppppiVar24)" (( "(") (binary_expression "(int ****)local_d4 != ppppiVar24" (cast_expression "(int ****)local_d4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_d4")) (!= "!=") (identifier "ppppiVar24")) () ")")) (compound_statement "{\n      if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }\n      iVar13 = *(int *)(param_1 + 0x20);\n      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);\n      puVar28 = (undefined1 *)piVar27;\n      if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }\n      do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);\n    }" ({ "{") (if_statement "if (param_4 == 0) {\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;\n        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;\n        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;\n                    \n        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;\n        FUN_00069d00();\n      }" ({ "{") (expression_statement "*(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;" (assignment_expression "*(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65" (pointer_expression "*(undefined ***)((int)piVar27 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar27 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_b8 + -0x3dd65" (identifier "local_b8") (+ "+") (number_literal "-0x3dd65"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0xc) = 0x6ed" (pointer_expression "*(undefined4 *)((int)piVar27 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x6ed")) (; ";")) (expression_statement "*(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d" (pointer_expression "*(int *)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)ppuVar5 + -0xf7f6d" (cast_expression "(int)ppuVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar5")) (+ "+") (number_literal "-0xf7f6d"))) (; ";")) (expression_statement "*(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;" (assignment_expression "*(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519" (pointer_expression "*(undefined1 **)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined1 **)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&LAB_00161519" (& "&") (identifier "LAB_00161519"))) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x20)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);" (assignment_expression "iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" (* "*") (cast_expression "(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c)" (( "(") (binary_expression "(int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c" (binary_expression "(int)local_ec * 0x20 + *(int *)(param_1 + 0x30)" (binary_expression "(int)local_ec * 0x20" (cast_expression "(int)local_ec" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ec")) (* "*") (number_literal "0x20")) (+ "+") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "puVar28 = (undefined1 *)piVar27;" (assignment_expression "puVar28 = (undefined1 *)piVar27" (identifier "puVar28") (= "=") (cast_expression "(undefined1 *)piVar27" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar27"))) (; ";")) (if_statement "if (iVar21 != 0 || iVar13 != 0) {\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }" (if "if") (parenthesized_expression "(iVar21 != 0 || iVar13 != 0)" (( "(") (binary_expression "iVar21 != 0 || iVar13 != 0" (binary_expression "iVar21 != 0" (identifier "iVar21") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;\n        local_fc = iVar13;\n        local_f8 = iVar21;\n        if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }\n        if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }\n        local_100 = local_11c;\nLAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;\n        *(int *)((int)piVar27 + -8) = local_fc;\n        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;\n        FUN_00165ca0();\n        local_b4 = (uint ***)0x0;\n        ppppiVar17 = (int ****)0x0;\nLAB_00160b99:\n        ppppiVar24 = ppppiVar17;\n        if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }\n        *(int *)((int)piVar27 + -0xc) = local_100;\n        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;\n        FUN_001e6d70();\n        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);\n        ppppiVar24 = (int ****)local_d8[-1];\n        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;\n      }" ({ "{") (expression_statement "iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;" (assignment_expression "iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24" (identifier "iVar29") (= "=") (binary_expression "(int)(int ****)local_d4 - (int)ppppiVar24" (cast_expression "(int)(int ****)local_d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(int ****)local_d4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_d4"))) (- "-") (cast_expression "(int)ppppiVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppiVar24")))) (; ";")) (expression_statement "local_fc = iVar13;" (assignment_expression "local_fc = iVar13" (identifier "local_fc") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "local_f8 = iVar21;" (assignment_expression "local_f8 = iVar21" (identifier "local_f8") (= "=") (identifier "iVar21")) (; ";")) (if_statement "if (0x7fffffc0 < iVar29) {\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }" (if "if") (parenthesized_expression "(0x7fffffc0 < iVar29)" (( "(") (binary_expression "0x7fffffc0 < iVar29" (number_literal "0x7fffffc0") (< "<") (identifier "iVar29")) () ")")) (compound_statement "{\n          iVar29 = 0x1ffffff;\nLAB_001609ce:\n          local_100 = (int)local_e8;\nLAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;\n          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);\n          local_b4 = (uint ***)(iVar29 << 6);\n          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;\n          ppppiVar17 = (int ****)FUN_001e51a0();\n          pppuVar22 = local_b4;\n          if (ppppiVar17 == (int ****)0x0) break;\n          local_108 = (uint ***)(ppppiVar24 + 8);\n          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);\n          *ppppiVar17 = *ppppiVar24;\n          ppppiVar17[1] = ppppiVar24[1];\n          ppppiVar17[2] = ppppiVar24[2];\n          ppppiVar17[3] = ppppiVar24[3];\n          ppppiVar17[4] = ppppiVar24[4];\n          ppppiVar17[5] = ppppiVar24[5];\n          ppppiVar19 = ppppiVar17 + 8;\n          ppppiVar17[6] = (int ***)ppppiVar19;\n          if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }\n          pppiVar18 = ppppiVar24[0xd];\n          ppppiVar17[7] = ppppiVar24[7];\n          ppppiVar24[7] = (int ***)0x0;\n          ppppiVar24[6] = (int ***)local_108;\n          pppiVar4 = ppppiVar24[0xc];\n          *(undefined1 *)(ppppiVar24 + 8) = 0;\n          ppppiVar17[0xd] = pppiVar18;\n          pppiVar18 = ppppiVar24[0xf];\n          ppppiVar17[0xc] = pppiVar4;\n          pppiVar4 = ppppiVar24[0xe];\n          ppppiVar17[0xf] = pppiVar18;\n          ppppiVar17[0xe] = pppiVar4;\n          if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }\n          *ppppiVar24 = (int ***)*local_bc;\n          ppppiVar24[1] = (int ***)local_bc[1];\n          ppppiVar24[2] = (int ***)local_bc[2];\n          ppppiVar24[3] = (int ***)local_bc[3];\n          ppppiVar24[4] = (int ***)local_bc[4];\n          ppppiVar24[5] = (int ***)local_bc[5];\n          local_104 = (uint ***)ppppiVar24[6];\n          local_10c = (uint ***)local_bc[6];\n          if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }\nLAB_001611b8:\n          local_bc[7] = (uint **)0x0;\n          *(undefined1 *)local_104 = 0;\n          pppiVar18 = (int ***)local_bc[0xd];\n          ppppiVar24[0xc] = (int ***)local_bc[0xc];\n          ppppiVar24[0xd] = pppiVar18;\n          pppiVar18 = (int ***)local_bc[0xe];\n          ppppiVar24[0xf] = (int ***)local_bc[0xf];\n          ppppiVar24[0xe] = pppiVar18;\n          *(int *)((int)piVar27 + -0xc) = local_f8;\n          *(int *)((int)piVar27 + -0x10) = local_fc;\n          *(int *)((int)piVar27 + -0x14) = iVar29;\n          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;\n          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;\n          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;\n                    \n          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;\n          FUN_00167d90();\n          goto LAB_00160b99;\n        }" ({ "{") (expression_statement "iVar29 = 0x1ffffff;" (assignment_expression "iVar29 = 0x1ffffff" (identifier "iVar29") (= "=") (number_literal "0x1ffffff")) (; ";")) (labeled_statement "LAB_001609ce:\n          local_100 = (int)local_e8;" (statement_identifier "LAB_001609ce") (: ":") (expression_statement "local_100 = (int)local_e8;" (assignment_expression "local_100 = (int)local_e8" (identifier "local_100") (= "=") (cast_expression "(int)local_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e8"))) (; ";"))) (labeled_statement "LAB_001609e8:\n          *(uint ***)((int)piVar27 + -0xc) = local_e8;" (statement_identifier "LAB_001609e8") (: ":") (expression_statement "*(uint ***)((int)piVar27 + -0xc) = local_e8;" (assignment_expression "*(uint ***)((int)piVar27 + -0xc) = local_e8" (pointer_expression "*(uint ***)((int)piVar27 + -0xc)" (* "*") (cast_expression "(uint ***)((int)piVar27 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_e8")) (; ";"))) (expression_statement "*(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6)" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (cast_expression "(int ****)(iVar29 << 6)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar29 << 6)" (( "(") (binary_expression "iVar29 << 6" (identifier "iVar29") (<< "<<") (number_literal "6")) () ")")))) (; ";")) (expression_statement "local_b4 = (uint ***)(iVar29 << 6);" (assignment_expression "local_b4 = (uint ***)(iVar29 << 6)" (identifier "local_b4") (= "=") (cast_expression "(uint ***)(iVar29 << 6)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(iVar29 << 6)" (( "(") (binary_expression "iVar29 << 6" (identifier "iVar29") (<< "<<") (number_literal "6")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160a08" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160a08")) (; ";")) (expression_statement "ppppiVar17 = (int ****)FUN_001e51a0();" (assignment_expression "ppppiVar17 = (int ****)FUN_001e51a0()" (identifier "ppppiVar17") (= "=") (cast_expression "(int ****)FUN_001e51a0()" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "FUN_001e51a0()" (identifier "FUN_001e51a0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppuVar22 = local_b4;" (assignment_expression "pppuVar22 = local_b4" (identifier "pppuVar22") (= "=") (identifier "local_b4")) (; ";")) (if_statement "if (ppppiVar17 == (int ****)0x0) break;" (if "if") (parenthesized_expression "(ppppiVar17 == (int ****)0x0)" (( "(") (binary_expression "ppppiVar17 == (int ****)0x0" (identifier "ppppiVar17") (== "==") (cast_expression "(int ****)0x0" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_108 = (uint ***)(ppppiVar24 + 8);" (assignment_expression "local_108 = (uint ***)(ppppiVar24 + 8)" (identifier "local_108") (= "=") (cast_expression "(uint ***)(ppppiVar24 + 8)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(ppppiVar24 + 8)" (( "(") (binary_expression "ppppiVar24 + 8" (identifier "ppppiVar24") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);" (assignment_expression "local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4)" (identifier "local_b4") (= "=") (cast_expression "(uint ***)((int)ppppiVar17 + (int)local_b4)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppppiVar17 + (int)local_b4)" (( "(") (binary_expression "(int)ppppiVar17 + (int)local_b4" (cast_expression "(int)ppppiVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppiVar17")) (+ "+") (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4"))) () ")")))) (; ";")) (expression_statement "*ppppiVar17 = *ppppiVar24;" (assignment_expression "*ppppiVar17 = *ppppiVar24" (pointer_expression "*ppppiVar17" (* "*") (identifier "ppppiVar17")) (= "=") (pointer_expression "*ppppiVar24" (* "*") (identifier "ppppiVar24"))) (; ";")) (expression_statement "ppppiVar17[1] = ppppiVar24[1];" (assignment_expression "ppppiVar17[1] = ppppiVar24[1]" (subscript_expression "ppppiVar17[1]" (identifier "ppppiVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "ppppiVar24[1]" (identifier "ppppiVar24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "ppppiVar17[2] = ppppiVar24[2];" (assignment_expression "ppppiVar17[2] = ppppiVar24[2]" (subscript_expression "ppppiVar17[2]" (identifier "ppppiVar17") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "ppppiVar24[2]" (identifier "ppppiVar24") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "ppppiVar17[3] = ppppiVar24[3];" (assignment_expression "ppppiVar17[3] = ppppiVar24[3]" (subscript_expression "ppppiVar17[3]" (identifier "ppppiVar17") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "ppppiVar24[3]" (identifier "ppppiVar24") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "ppppiVar17[4] = ppppiVar24[4];" (assignment_expression "ppppiVar17[4] = ppppiVar24[4]" (subscript_expression "ppppiVar17[4]" (identifier "ppppiVar17") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "ppppiVar24[4]" (identifier "ppppiVar24") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "ppppiVar17[5] = ppppiVar24[5];" (assignment_expression "ppppiVar17[5] = ppppiVar24[5]" (subscript_expression "ppppiVar17[5]" (identifier "ppppiVar17") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "ppppiVar24[5]" (identifier "ppppiVar24") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "ppppiVar19 = ppppiVar17 + 8;" (assignment_expression "ppppiVar19 = ppppiVar17 + 8" (identifier "ppppiVar19") (= "=") (binary_expression "ppppiVar17 + 8" (identifier "ppppiVar17") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "ppppiVar17[6] = (int ***)ppppiVar19;" (assignment_expression "ppppiVar17[6] = (int ***)ppppiVar19" (subscript_expression "ppppiVar17[6]" (identifier "ppppiVar17") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int ***)ppppiVar19" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppiVar19"))) (; ";")) (if_statement "if ((uint ***)ppppiVar24[6] == local_108) {\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }\n          else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }" (if "if") (parenthesized_expression "((uint ***)ppppiVar24[6] == local_108)" (( "(") (binary_expression "(uint ***)ppppiVar24[6] == local_108" (cast_expression "(uint ***)ppppiVar24[6]" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "ppppiVar24[6]" (identifier "ppppiVar24") ([ "[") (number_literal "6") (] "]"))) (== "==") (identifier "local_108")) () ")")) (compound_statement "{\n            ppppiVar17[8] = ppppiVar24[8];\n            ppppiVar17[9] = ppppiVar24[9];\n            ppppiVar17[10] = ppppiVar24[10];\n            ppppiVar17[0xb] = ppppiVar24[0xb];\n          }" ({ "{") (expression_statement "ppppiVar17[8] = ppppiVar24[8];" (assignment_expression "ppppiVar17[8] = ppppiVar24[8]" (subscript_expression "ppppiVar17[8]" (identifier "ppppiVar17") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "ppppiVar24[8]" (identifier "ppppiVar24") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "ppppiVar17[9] = ppppiVar24[9];" (assignment_expression "ppppiVar17[9] = ppppiVar24[9]" (subscript_expression "ppppiVar17[9]" (identifier "ppppiVar17") ([ "[") (number_literal "9") (] "]")) (= "=") (subscript_expression "ppppiVar24[9]" (identifier "ppppiVar24") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "ppppiVar17[10] = ppppiVar24[10];" (assignment_expression "ppppiVar17[10] = ppppiVar24[10]" (subscript_expression "ppppiVar17[10]" (identifier "ppppiVar17") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "ppppiVar24[10]" (identifier "ppppiVar24") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "ppppiVar17[0xb] = ppppiVar24[0xb];" (assignment_expression "ppppiVar17[0xb] = ppppiVar24[0xb]" (subscript_expression "ppppiVar17[0xb]" (identifier "ppppiVar17") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "ppppiVar24[0xb]" (identifier "ppppiVar24") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }" (else "else") (compound_statement "{\n            ppppiVar17[6] = ppppiVar24[6];\n            ppppiVar17[8] = ppppiVar24[8];\n          }" ({ "{") (expression_statement "ppppiVar17[6] = ppppiVar24[6];" (assignment_expression "ppppiVar17[6] = ppppiVar24[6]" (subscript_expression "ppppiVar17[6]" (identifier "ppppiVar17") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "ppppiVar24[6]" (identifier "ppppiVar24") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppppiVar17[8] = ppppiVar24[8];" (assignment_expression "ppppiVar17[8] = ppppiVar24[8]" (subscript_expression "ppppiVar17[8]" (identifier "ppppiVar17") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "ppppiVar24[8]" (identifier "ppppiVar24") ([ "[") (number_literal "8") (] "]"))) (; ";")) (} "}")))) (expression_statement "pppiVar18 = ppppiVar24[0xd];" (assignment_expression "pppiVar18 = ppppiVar24[0xd]" (identifier "pppiVar18") (= "=") (subscript_expression "ppppiVar24[0xd]" (identifier "ppppiVar24") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "ppppiVar17[7] = ppppiVar24[7];" (assignment_expression "ppppiVar17[7] = ppppiVar24[7]" (subscript_expression "ppppiVar17[7]" (identifier "ppppiVar17") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "ppppiVar24[7]" (identifier "ppppiVar24") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "ppppiVar24[7] = (int ***)0x0;" (assignment_expression "ppppiVar24[7] = (int ***)0x0" (subscript_expression "ppppiVar24[7]" (identifier "ppppiVar24") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int ***)0x0" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppiVar24[6] = (int ***)local_108;" (assignment_expression "ppppiVar24[6] = (int ***)local_108" (subscript_expression "ppppiVar24[6]" (identifier "ppppiVar24") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int ***)local_108" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_108"))) (; ";")) (expression_statement "pppiVar4 = ppppiVar24[0xc];" (assignment_expression "pppiVar4 = ppppiVar24[0xc]" (identifier "pppiVar4") (= "=") (subscript_expression "ppppiVar24[0xc]" (identifier "ppppiVar24") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(ppppiVar24 + 8) = 0;" (assignment_expression "*(undefined1 *)(ppppiVar24 + 8) = 0" (pointer_expression "*(undefined1 *)(ppppiVar24 + 8)" (* "*") (cast_expression "(undefined1 *)(ppppiVar24 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppiVar24 + 8)" (( "(") (binary_expression "ppppiVar24 + 8" (identifier "ppppiVar24") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "ppppiVar17[0xd] = pppiVar18;" (assignment_expression "ppppiVar17[0xd] = pppiVar18" (subscript_expression "ppppiVar17[0xd]" (identifier "ppppiVar17") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "pppiVar18")) (; ";")) (expression_statement "pppiVar18 = ppppiVar24[0xf];" (assignment_expression "pppiVar18 = ppppiVar24[0xf]" (identifier "pppiVar18") (= "=") (subscript_expression "ppppiVar24[0xf]" (identifier "ppppiVar24") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "ppppiVar17[0xc] = pppiVar4;" (assignment_expression "ppppiVar17[0xc] = pppiVar4" (subscript_expression "ppppiVar17[0xc]" (identifier "ppppiVar17") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "pppiVar4")) (; ";")) (expression_statement "pppiVar4 = ppppiVar24[0xe];" (assignment_expression "pppiVar4 = ppppiVar24[0xe]" (identifier "pppiVar4") (= "=") (subscript_expression "ppppiVar24[0xe]" (identifier "ppppiVar24") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "ppppiVar17[0xf] = pppiVar18;" (assignment_expression "ppppiVar17[0xf] = pppiVar18" (subscript_expression "ppppiVar17[0xf]" (identifier "ppppiVar17") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "pppiVar18")) (; ";")) (expression_statement "ppppiVar17[0xe] = pppiVar4;" (assignment_expression "ppppiVar17[0xe] = pppiVar4" (subscript_expression "ppppiVar17[0xe]" (identifier "ppppiVar17") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "pppiVar4")) (; ";")) (if_statement "if ((int ****)local_b4 == ppppiVar17 + 0x10) {\n            local_bc = (uint ***)ppppiVar17;\n          }\n          else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }" (if "if") (parenthesized_expression "((int ****)local_b4 == ppppiVar17 + 0x10)" (( "(") (binary_expression "(int ****)local_b4 == ppppiVar17 + 0x10" (cast_expression "(int ****)local_b4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_b4")) (== "==") (binary_expression "ppppiVar17 + 0x10" (identifier "ppppiVar17") (+ "+") (number_literal "0x10"))) () ")")) (compound_statement "{\n            local_bc = (uint ***)ppppiVar17;\n          }" ({ "{") (expression_statement "local_bc = (uint ***)ppppiVar17;" (assignment_expression "local_bc = (uint ***)ppppiVar17" (identifier "local_bc") (= "=") (cast_expression "(uint ***)ppppiVar17" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppiVar17"))) (; ";")) (} "}")) (else_clause "else {\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }" (else "else") (compound_statement "{\n            local_118 = iVar29;\n            ppppiVar1 = (int ****)(pppuVar22 + -8);\n            do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));\n            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);\n            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);\n          }" ({ "{") (expression_statement "local_118 = iVar29;" (assignment_expression "local_118 = iVar29" (identifier "local_118") (= "=") (identifier "iVar29")) (; ";")) (expression_statement "ppppiVar1 = (int ****)(pppuVar22 + -8);" (assignment_expression "ppppiVar1 = (int ****)(pppuVar22 + -8)" (identifier "ppppiVar1") (= "=") (cast_expression "(int ****)(pppuVar22 + -8)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(pppuVar22 + -8)" (( "(") (binary_expression "pppuVar22 + -8" (identifier "pppuVar22") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (do_statement "do {\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));" (do "do") (compound_statement "{\n              ppppiVar19[8] = ppppiVar19[-8];\n              ppppiVar19[9] = ppppiVar19[-7];\n              ppppiVar19[10] = ppppiVar19[-6];\n              ppppiVar19[0xb] = ppppiVar19[-5];\n              ppppiVar19[0xc] = ppppiVar19[-4];\n              ppppiVar19[0xd] = ppppiVar19[-3];\n              ppppiVar2 = ppppiVar19 + 0x10;\n              ppppiVar19[0xe] = (int ***)ppppiVar2;\n              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }\n              pppiVar18 = ppppiVar19[-1];\n              ppppiVar19[-2] = (int ***)ppppiVar19;\n              ppppiVar19[-1] = (int ***)0x0;\n              ppppiVar19[0xf] = pppiVar18;\n              ppppiVar19[0x15] = ppppiVar19[5];\n              ppppiVar19[0x14] = ppppiVar19[4];\n              *(undefined1 *)ppppiVar19 = 0;\n              ppppiVar19[0x16] = ppppiVar19[6];\n              ppppiVar19[0x17] = ppppiVar19[7];\n              ppppiVar19 = ppppiVar2;\n            }" ({ "{") (expression_statement "ppppiVar19[8] = ppppiVar19[-8];" (assignment_expression "ppppiVar19[8] = ppppiVar19[-8]" (subscript_expression "ppppiVar19[8]" (identifier "ppppiVar19") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "ppppiVar19[-8]" (identifier "ppppiVar19") ([ "[") (number_literal "-8") (] "]"))) (; ";")) (expression_statement "ppppiVar19[9] = ppppiVar19[-7];" (assignment_expression "ppppiVar19[9] = ppppiVar19[-7]" (subscript_expression "ppppiVar19[9]" (identifier "ppppiVar19") ([ "[") (number_literal "9") (] "]")) (= "=") (subscript_expression "ppppiVar19[-7]" (identifier "ppppiVar19") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "ppppiVar19[10] = ppppiVar19[-6];" (assignment_expression "ppppiVar19[10] = ppppiVar19[-6]" (subscript_expression "ppppiVar19[10]" (identifier "ppppiVar19") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "ppppiVar19[-6]" (identifier "ppppiVar19") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "ppppiVar19[0xb] = ppppiVar19[-5];" (assignment_expression "ppppiVar19[0xb] = ppppiVar19[-5]" (subscript_expression "ppppiVar19[0xb]" (identifier "ppppiVar19") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "ppppiVar19[-5]" (identifier "ppppiVar19") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "ppppiVar19[0xc] = ppppiVar19[-4];" (assignment_expression "ppppiVar19[0xc] = ppppiVar19[-4]" (subscript_expression "ppppiVar19[0xc]" (identifier "ppppiVar19") ([ "[") (number_literal "0xc") (] "]")) (= "=") (subscript_expression "ppppiVar19[-4]" (identifier "ppppiVar19") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "ppppiVar19[0xd] = ppppiVar19[-3];" (assignment_expression "ppppiVar19[0xd] = ppppiVar19[-3]" (subscript_expression "ppppiVar19[0xd]" (identifier "ppppiVar19") ([ "[") (number_literal "0xd") (] "]")) (= "=") (subscript_expression "ppppiVar19[-3]" (identifier "ppppiVar19") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (expression_statement "ppppiVar2 = ppppiVar19 + 0x10;" (assignment_expression "ppppiVar2 = ppppiVar19 + 0x10" (identifier "ppppiVar2") (= "=") (binary_expression "ppppiVar19 + 0x10" (identifier "ppppiVar19") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "ppppiVar19[0xe] = (int ***)ppppiVar2;" (assignment_expression "ppppiVar19[0xe] = (int ***)ppppiVar2" (subscript_expression "ppppiVar19[0xe]" (identifier "ppppiVar19") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(int ***)ppppiVar2" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppiVar2"))) (; ";")) (if_statement "if (ppppiVar19 == (int ****)ppppiVar19[-2]) {\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }\n              else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }" (if "if") (parenthesized_expression "(ppppiVar19 == (int ****)ppppiVar19[-2])" (( "(") (binary_expression "ppppiVar19 == (int ****)ppppiVar19[-2]" (identifier "ppppiVar19") (== "==") (cast_expression "(int ****)ppppiVar19[-2]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "ppppiVar19[-2]" (identifier "ppppiVar19") ([ "[") (number_literal "-2") (] "]")))) () ")")) (compound_statement "{\n                ppppiVar19[0x10] = *ppppiVar19;\n                ppppiVar19[0x11] = ppppiVar19[1];\n                ppppiVar19[0x12] = ppppiVar19[2];\n                ppppiVar19[0x13] = ppppiVar19[3];\n              }" ({ "{") (expression_statement "ppppiVar19[0x10] = *ppppiVar19;" (assignment_expression "ppppiVar19[0x10] = *ppppiVar19" (subscript_expression "ppppiVar19[0x10]" (identifier "ppppiVar19") ([ "[") (number_literal "0x10") (] "]")) (= "=") (pointer_expression "*ppppiVar19" (* "*") (identifier "ppppiVar19"))) (; ";")) (expression_statement "ppppiVar19[0x11] = ppppiVar19[1];" (assignment_expression "ppppiVar19[0x11] = ppppiVar19[1]" (subscript_expression "ppppiVar19[0x11]" (identifier "ppppiVar19") ([ "[") (number_literal "0x11") (] "]")) (= "=") (subscript_expression "ppppiVar19[1]" (identifier "ppppiVar19") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "ppppiVar19[0x12] = ppppiVar19[2];" (assignment_expression "ppppiVar19[0x12] = ppppiVar19[2]" (subscript_expression "ppppiVar19[0x12]" (identifier "ppppiVar19") ([ "[") (number_literal "0x12") (] "]")) (= "=") (subscript_expression "ppppiVar19[2]" (identifier "ppppiVar19") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "ppppiVar19[0x13] = ppppiVar19[3];" (assignment_expression "ppppiVar19[0x13] = ppppiVar19[3]" (subscript_expression "ppppiVar19[0x13]" (identifier "ppppiVar19") ([ "[") (number_literal "0x13") (] "]")) (= "=") (subscript_expression "ppppiVar19[3]" (identifier "ppppiVar19") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }" (else "else") (compound_statement "{\n                ppppiVar19[0xe] = ppppiVar19[-2];\n                ppppiVar19[0x10] = *ppppiVar19;\n              }" ({ "{") (expression_statement "ppppiVar19[0xe] = ppppiVar19[-2];" (assignment_expression "ppppiVar19[0xe] = ppppiVar19[-2]" (subscript_expression "ppppiVar19[0xe]" (identifier "ppppiVar19") ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "ppppiVar19[-2]" (identifier "ppppiVar19") ([ "[") (number_literal "-2") (] "]"))) (; ";")) (expression_statement "ppppiVar19[0x10] = *ppppiVar19;" (assignment_expression "ppppiVar19[0x10] = *ppppiVar19" (subscript_expression "ppppiVar19[0x10]" (identifier "ppppiVar19") ([ "[") (number_literal "0x10") (] "]")) (= "=") (pointer_expression "*ppppiVar19" (* "*") (identifier "ppppiVar19"))) (; ";")) (} "}")))) (expression_statement "pppiVar18 = ppppiVar19[-1];" (assignment_expression "pppiVar18 = ppppiVar19[-1]" (identifier "pppiVar18") (= "=") (subscript_expression "ppppiVar19[-1]" (identifier "ppppiVar19") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "ppppiVar19[-2] = (int ***)ppppiVar19;" (assignment_expression "ppppiVar19[-2] = (int ***)ppppiVar19" (subscript_expression "ppppiVar19[-2]" (identifier "ppppiVar19") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(int ***)ppppiVar19" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppiVar19"))) (; ";")) (expression_statement "ppppiVar19[-1] = (int ***)0x0;" (assignment_expression "ppppiVar19[-1] = (int ***)0x0" (subscript_expression "ppppiVar19[-1]" (identifier "ppppiVar19") ([ "[") (number_literal "-1") (] "]")) (= "=") (cast_expression "(int ***)0x0" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppiVar19[0xf] = pppiVar18;" (assignment_expression "ppppiVar19[0xf] = pppiVar18" (subscript_expression "ppppiVar19[0xf]" (identifier "ppppiVar19") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "pppiVar18")) (; ";")) (expression_statement "ppppiVar19[0x15] = ppppiVar19[5];" (assignment_expression "ppppiVar19[0x15] = ppppiVar19[5]" (subscript_expression "ppppiVar19[0x15]" (identifier "ppppiVar19") ([ "[") (number_literal "0x15") (] "]")) (= "=") (subscript_expression "ppppiVar19[5]" (identifier "ppppiVar19") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "ppppiVar19[0x14] = ppppiVar19[4];" (assignment_expression "ppppiVar19[0x14] = ppppiVar19[4]" (subscript_expression "ppppiVar19[0x14]" (identifier "ppppiVar19") ([ "[") (number_literal "0x14") (] "]")) (= "=") (subscript_expression "ppppiVar19[4]" (identifier "ppppiVar19") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)ppppiVar19 = 0;" (assignment_expression "*(undefined1 *)ppppiVar19 = 0" (pointer_expression "*(undefined1 *)ppppiVar19" (* "*") (cast_expression "(undefined1 *)ppppiVar19" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiVar19"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "ppppiVar19[0x16] = ppppiVar19[6];" (assignment_expression "ppppiVar19[0x16] = ppppiVar19[6]" (subscript_expression "ppppiVar19[0x16]" (identifier "ppppiVar19") ([ "[") (number_literal "0x16") (] "]")) (= "=") (subscript_expression "ppppiVar19[6]" (identifier "ppppiVar19") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppppiVar19[0x17] = ppppiVar19[7];" (assignment_expression "ppppiVar19[0x17] = ppppiVar19[7]" (subscript_expression "ppppiVar19[0x17]" (identifier "ppppiVar19") ([ "[") (number_literal "0x17") (] "]")) (= "=") (subscript_expression "ppppiVar19[7]" (identifier "ppppiVar19") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "ppppiVar19 = ppppiVar2;" (assignment_expression "ppppiVar19 = ppppiVar2" (identifier "ppppiVar19") (= "=") (identifier "ppppiVar2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17))" (( "(") (binary_expression "ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17)" (identifier "ppppiVar2") (!= "!=") (cast_expression "(int ****)((int)ppppiVar1 + (int)ppppiVar17)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppiVar1 + (int)ppppiVar17)" (( "(") (binary_expression "(int)ppppiVar1 + (int)ppppiVar17" (cast_expression "(int)ppppiVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppiVar1")) (+ "+") (cast_expression "(int)ppppiVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppiVar17"))) () ")")))) () ")")) (; ";")) (expression_statement "local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);" (assignment_expression "local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10)" (identifier "local_bc") (= "=") (cast_expression "(uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10)" (( "(") (binary_expression "ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10" (identifier "ppppiVar17") (+ "+") (binary_expression "(((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10" (parenthesized_expression "(((uint)(pppuVar22 + -0x20) >> 6) + 1)" (( "(") (binary_expression "((uint)(pppuVar22 + -0x20) >> 6) + 1" (parenthesized_expression "((uint)(pppuVar22 + -0x20) >> 6)" (( "(") (binary_expression "(uint)(pppuVar22 + -0x20) >> 6" (call_expression "(uint)(pppuVar22 + -0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pppuVar22 + -0x20)" (( "(") (binary_expression "pppuVar22 + -0x20" (identifier "pppuVar22") (+ "+") (number_literal "-0x20")) () ")"))) (>> ">>") (number_literal "6")) () ")")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0x10"))) () ")")))) (; ";")) (expression_statement "ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);" (assignment_expression "ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17)" (identifier "ppppiVar19") (= "=") (cast_expression "(int ****)((int)ppppiVar1 + (int)ppppiVar17)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppiVar1 + (int)ppppiVar17)" (( "(") (binary_expression "(int)ppppiVar1 + (int)ppppiVar17" (cast_expression "(int)ppppiVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppiVar1")) (+ "+") (cast_expression "(int)ppppiVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppiVar17"))) () ")")))) (; ";")) (} "}")))) (expression_statement "*ppppiVar24 = (int ***)*local_bc;" (assignment_expression "*ppppiVar24 = (int ***)*local_bc" (pointer_expression "*ppppiVar24" (* "*") (identifier "ppppiVar24")) (= "=") (cast_expression "(int ***)*local_bc" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "*local_bc" (* "*") (identifier "local_bc")))) (; ";")) (expression_statement "ppppiVar24[1] = (int ***)local_bc[1];" (assignment_expression "ppppiVar24[1] = (int ***)local_bc[1]" (subscript_expression "ppppiVar24[1]" (identifier "ppppiVar24") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int ***)local_bc[1]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[1]" (identifier "local_bc") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "ppppiVar24[2] = (int ***)local_bc[2];" (assignment_expression "ppppiVar24[2] = (int ***)local_bc[2]" (subscript_expression "ppppiVar24[2]" (identifier "ppppiVar24") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int ***)local_bc[2]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[2]" (identifier "local_bc") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "ppppiVar24[3] = (int ***)local_bc[3];" (assignment_expression "ppppiVar24[3] = (int ***)local_bc[3]" (subscript_expression "ppppiVar24[3]" (identifier "ppppiVar24") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int ***)local_bc[3]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[3]" (identifier "local_bc") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "ppppiVar24[4] = (int ***)local_bc[4];" (assignment_expression "ppppiVar24[4] = (int ***)local_bc[4]" (subscript_expression "ppppiVar24[4]" (identifier "ppppiVar24") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int ***)local_bc[4]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[4]" (identifier "local_bc") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "ppppiVar24[5] = (int ***)local_bc[5];" (assignment_expression "ppppiVar24[5] = (int ***)local_bc[5]" (subscript_expression "ppppiVar24[5]" (identifier "ppppiVar24") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int ***)local_bc[5]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[5]" (identifier "local_bc") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "local_104 = (uint ***)ppppiVar24[6];" (assignment_expression "local_104 = (uint ***)ppppiVar24[6]" (identifier "local_104") (= "=") (cast_expression "(uint ***)ppppiVar24[6]" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "ppppiVar24[6]" (identifier "ppppiVar24") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "local_10c = (uint ***)local_bc[6];" (assignment_expression "local_10c = (uint ***)local_bc[6]" (identifier "local_10c") (= "=") (cast_expression "(uint ***)local_bc[6]" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[6]" (identifier "local_bc") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (ppppiVar19 == (int ****)local_10c) {\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }\n          else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }" (if "if") (parenthesized_expression "(ppppiVar19 == (int ****)local_10c)" (( "(") (binary_expression "ppppiVar19 == (int ****)local_10c" (identifier "ppppiVar19") (== "==") (cast_expression "(int ****)local_10c" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_10c"))) () ")")) (compound_statement "{\n            pppiVar18 = (int ***)local_bc[7];\n            if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }\n            ppppiVar24[7] = pppiVar18;\n            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;\n            local_104 = (uint ***)local_bc[6];\n          }" ({ "{") (expression_statement "pppiVar18 = (int ***)local_bc[7];" (assignment_expression "pppiVar18 = (int ***)local_bc[7]" (identifier "pppiVar18") (= "=") (cast_expression "(int ***)local_bc[7]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[7]" (identifier "local_bc") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (pppiVar18 != (int ***)0x0) {\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }" (if "if") (parenthesized_expression "(pppiVar18 != (int ***)0x0)" (( "(") (binary_expression "pppiVar18 != (int ***)0x0" (identifier "pppiVar18") (!= "!=") (cast_expression "(int ***)0x0" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }\n            }" ({ "{") (if_statement "if (pppiVar18 == (int ***)0x1) {\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }\n              else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }" (if "if") (parenthesized_expression "(pppiVar18 == (int ***)0x1)" (( "(") (binary_expression "pppiVar18 == (int ***)0x1" (identifier "pppiVar18") (== "==") (cast_expression "(int ***)0x1" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);\n                local_104 = (uint ***)ppppiVar24[6];\n                pppiVar18 = (int ***)local_bc[7];\n              }" ({ "{") (expression_statement "*(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);" (assignment_expression "*(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8)" (pointer_expression "*(undefined1 *)local_104" (* "*") (cast_expression "(undefined1 *)local_104" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_104"))) (= "=") (pointer_expression "*(undefined1 *)(local_bc + 8)" (* "*") (cast_expression "(undefined1 *)(local_bc + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_bc + 8)" (( "(") (binary_expression "local_bc + 8" (identifier "local_bc") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_104 = (uint ***)ppppiVar24[6];" (assignment_expression "local_104 = (uint ***)ppppiVar24[6]" (identifier "local_104") (= "=") (cast_expression "(uint ***)ppppiVar24[6]" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "ppppiVar24[6]" (identifier "ppppiVar24") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "pppiVar18 = (int ***)local_bc[7];" (assignment_expression "pppiVar18 = (int ***)local_bc[7]" (identifier "pppiVar18") (= "=") (cast_expression "(int ***)local_bc[7]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[7]" (identifier "local_bc") ([ "[") (number_literal "7") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }" (else "else") (compound_statement "{\n                local_108 = (uint ***)ppppiVar24;\n                *(int ****)((int)piVar27 + -8) = pppiVar18;\n                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;\n                *(uint ****)((int)piVar27 + -0x10) = local_104;\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;\n                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));\n                pppiVar18 = (int ***)local_bc[7];\n                local_104 = (uint ***)local_108[6];\n                ppppiVar24 = (int ****)local_108;\n              }" ({ "{") (expression_statement "local_108 = (uint ***)ppppiVar24;" (assignment_expression "local_108 = (uint ***)ppppiVar24" (identifier "local_108") (= "=") (cast_expression "(uint ***)ppppiVar24" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppiVar24"))) (; ";")) (expression_statement "*(int ****)((int)piVar27 + -8) = pppiVar18;" (assignment_expression "*(int ****)((int)piVar27 + -8) = pppiVar18" (pointer_expression "*(int ****)((int)piVar27 + -8)" (* "*") (cast_expression "(int ****)((int)piVar27 + -8)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "pppiVar18")) (; ";")) (expression_statement "*(int *****)((int)piVar27 + -0xc) = ppppiVar19;" (assignment_expression "*(int *****)((int)piVar27 + -0xc) = ppppiVar19" (pointer_expression "*(int *****)((int)piVar27 + -0xc)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0xc)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "ppppiVar19")) (; ";")) (expression_statement "*(uint ****)((int)piVar27 + -0x10) = local_104;" (assignment_expression "*(uint ****)((int)piVar27 + -0x10) = local_104" (pointer_expression "*(uint ****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(uint ****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_104")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x16134b" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16134b")) (; ";")) (expression_statement "memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8));" (call_expression "memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8))" (identifier "memcpy") (argument_list "(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),\n                       *(size_t *)((int)piVar27 + -8))" (( "(") (pointer_expression "*(void **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(void **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(void **)((int)piVar27 + -0xc)" (* "*") (cast_expression "(void **)((int)piVar27 + -0xc)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)piVar27 + -8)" (* "*") (cast_expression "(size_t *)((int)piVar27 + -8)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) () ")"))) (; ";")) (expression_statement "pppiVar18 = (int ***)local_bc[7];" (assignment_expression "pppiVar18 = (int ***)local_bc[7]" (identifier "pppiVar18") (= "=") (cast_expression "(int ***)local_bc[7]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[7]" (identifier "local_bc") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "local_104 = (uint ***)local_108[6];" (assignment_expression "local_104 = (uint ***)local_108[6]" (identifier "local_104") (= "=") (cast_expression "(uint ***)local_108[6]" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_108[6]" (identifier "local_108") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "ppppiVar24 = (int ****)local_108;" (assignment_expression "ppppiVar24 = (int ****)local_108" (identifier "ppppiVar24") (= "=") (cast_expression "(int ****)local_108" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_108"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "ppppiVar24[7] = pppiVar18;" (assignment_expression "ppppiVar24[7] = pppiVar18" (subscript_expression "ppppiVar24[7]" (identifier "ppppiVar24") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "pppiVar18")) (; ";")) (expression_statement "*(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;" (assignment_expression "*(undefined1 *)((int)local_104 + (int)pppiVar18) = 0" (pointer_expression "*(undefined1 *)((int)local_104 + (int)pppiVar18)" (* "*") (cast_expression "(undefined1 *)((int)local_104 + (int)pppiVar18)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_104 + (int)pppiVar18)" (( "(") (binary_expression "(int)local_104 + (int)pppiVar18" (cast_expression "(int)local_104" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_104")) (+ "+") (cast_expression "(int)pppiVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppiVar18"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_104 = (uint ***)local_bc[6];" (assignment_expression "local_104 = (uint ***)local_bc[6]" (identifier "local_104") (= "=") (cast_expression "(uint ***)local_bc[6]" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[6]" (identifier "local_bc") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }" (else "else") (compound_statement "{\n            if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }\n            local_bc[6] = (uint **)ppppiVar19;\n            local_104 = (uint ***)ppppiVar19;\n          }" ({ "{") (if_statement "if (local_108 == local_104) {\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }\n            else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }" (if "if") (parenthesized_expression "(local_108 == local_104)" (( "(") (binary_expression "local_108 == local_104" (identifier "local_108") (== "==") (identifier "local_104")) () ")")) (compound_statement "{\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n            }" ({ "{") (expression_statement "ppppiVar24[6] = (int ***)local_10c;" (assignment_expression "ppppiVar24[6] = (int ***)local_10c" (subscript_expression "ppppiVar24[6]" (identifier "ppppiVar24") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int ***)local_10c" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_10c"))) (; ";")) (expression_statement "ppppiVar24[7] = (int ***)local_bc[7];" (assignment_expression "ppppiVar24[7] = (int ***)local_bc[7]" (subscript_expression "ppppiVar24[7]" (identifier "ppppiVar24") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int ***)local_bc[7]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[7]" (identifier "local_bc") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "ppppiVar24[8] = (int ***)local_bc[8];" (assignment_expression "ppppiVar24[8] = (int ***)local_bc[8]" (subscript_expression "ppppiVar24[8]" (identifier "ppppiVar24") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int ***)local_bc[8]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[8]" (identifier "local_bc") ([ "[") (number_literal "8") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }" (else "else") (compound_statement "{\n              local_108 = (uint ***)ppppiVar24[8];\n              ppppiVar24[6] = (int ***)local_10c;\n              ppppiVar24[7] = (int ***)local_bc[7];\n              ppppiVar24[8] = (int ***)local_bc[8];\n              if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }\n            }" ({ "{") (expression_statement "local_108 = (uint ***)ppppiVar24[8];" (assignment_expression "local_108 = (uint ***)ppppiVar24[8]" (identifier "local_108") (= "=") (cast_expression "(uint ***)ppppiVar24[8]" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "ppppiVar24[8]" (identifier "ppppiVar24") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "ppppiVar24[6] = (int ***)local_10c;" (assignment_expression "ppppiVar24[6] = (int ***)local_10c" (subscript_expression "ppppiVar24[6]" (identifier "ppppiVar24") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int ***)local_10c" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_10c"))) (; ";")) (expression_statement "ppppiVar24[7] = (int ***)local_bc[7];" (assignment_expression "ppppiVar24[7] = (int ***)local_bc[7]" (subscript_expression "ppppiVar24[7]" (identifier "ppppiVar24") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int ***)local_bc[7]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[7]" (identifier "local_bc") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "ppppiVar24[8] = (int ***)local_bc[8];" (assignment_expression "ppppiVar24[8] = (int ***)local_bc[8]" (subscript_expression "ppppiVar24[8]" (identifier "ppppiVar24") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int ***)local_bc[8]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[8]" (identifier "local_bc") ([ "[") (number_literal "8") (] "]")))) (; ";")) (if_statement "if ((int ****)local_104 != (int ****)0x0) {\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }" (if "if") (parenthesized_expression "((int ****)local_104 != (int ****)0x0)" (( "(") (binary_expression "(int ****)local_104 != (int ****)0x0" (cast_expression "(int ****)local_104" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_104")) (!= "!=") (cast_expression "(int ****)0x0" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                local_bc[6] = (uint **)local_104;\n                local_bc[8] = (uint **)local_108;\n                goto LAB_001611b8;\n              }" ({ "{") (expression_statement "local_bc[6] = (uint **)local_104;" (assignment_expression "local_bc[6] = (uint **)local_104" (subscript_expression "local_bc[6]" (identifier "local_bc") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(uint **)local_104" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_104"))) (; ";")) (expression_statement "local_bc[8] = (uint **)local_108;" (assignment_expression "local_bc[8] = (uint **)local_108" (subscript_expression "local_bc[8]" (identifier "local_bc") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(uint **)local_108" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_108"))) (; ";")) (goto_statement "goto LAB_001611b8;" (goto "goto") (statement_identifier "LAB_001611b8") (; ";")) (} "}"))) (} "}")))) (expression_statement "local_bc[6] = (uint **)ppppiVar19;" (assignment_expression "local_bc[6] = (uint **)ppppiVar19" (subscript_expression "local_bc[6]" (identifier "local_bc") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(uint **)ppppiVar19" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "ppppiVar19"))) (; ";")) (expression_statement "local_104 = (uint ***)ppppiVar19;" (assignment_expression "local_104 = (uint ***)ppppiVar19" (identifier "local_104") (= "=") (cast_expression "(uint ***)ppppiVar19" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppiVar19"))) (; ";")) (} "}")))) (labeled_statement "LAB_001611b8:\n          local_bc[7] = (uint **)0x0;" (statement_identifier "LAB_001611b8") (: ":") (expression_statement "local_bc[7] = (uint **)0x0;" (assignment_expression "local_bc[7] = (uint **)0x0" (subscript_expression "local_bc[7]" (identifier "local_bc") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "*(undefined1 *)local_104 = 0;" (assignment_expression "*(undefined1 *)local_104 = 0" (pointer_expression "*(undefined1 *)local_104" (* "*") (cast_expression "(undefined1 *)local_104" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_104"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pppiVar18 = (int ***)local_bc[0xd];" (assignment_expression "pppiVar18 = (int ***)local_bc[0xd]" (identifier "pppiVar18") (= "=") (cast_expression "(int ***)local_bc[0xd]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[0xd]" (identifier "local_bc") ([ "[") (number_literal "0xd") (] "]")))) (; ";")) (expression_statement "ppppiVar24[0xc] = (int ***)local_bc[0xc];" (assignment_expression "ppppiVar24[0xc] = (int ***)local_bc[0xc]" (subscript_expression "ppppiVar24[0xc]" (identifier "ppppiVar24") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int ***)local_bc[0xc]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[0xc]" (identifier "local_bc") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "ppppiVar24[0xd] = pppiVar18;" (assignment_expression "ppppiVar24[0xd] = pppiVar18" (subscript_expression "ppppiVar24[0xd]" (identifier "ppppiVar24") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "pppiVar18")) (; ";")) (expression_statement "pppiVar18 = (int ***)local_bc[0xe];" (assignment_expression "pppiVar18 = (int ***)local_bc[0xe]" (identifier "pppiVar18") (= "=") (cast_expression "(int ***)local_bc[0xe]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[0xe]" (identifier "local_bc") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (expression_statement "ppppiVar24[0xf] = (int ***)local_bc[0xf];" (assignment_expression "ppppiVar24[0xf] = (int ***)local_bc[0xf]" (subscript_expression "ppppiVar24[0xf]" (identifier "ppppiVar24") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int ***)local_bc[0xf]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_bc[0xf]" (identifier "local_bc") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "ppppiVar24[0xe] = pppiVar18;" (assignment_expression "ppppiVar24[0xe] = pppiVar18" (subscript_expression "ppppiVar24[0xe]" (identifier "ppppiVar24") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "pppiVar18")) (; ";")) (expression_statement "*(int *)((int)piVar27 + -0xc) = local_f8;" (assignment_expression "*(int *)((int)piVar27 + -0xc) = local_f8" (pointer_expression "*(int *)((int)piVar27 + -0xc)" (* "*") (cast_expression "(int *)((int)piVar27 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_f8")) (; ";")) (expression_statement "*(int *)((int)piVar27 + -0x10) = local_fc;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = local_fc" (pointer_expression "*(int *)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_fc")) (; ";")) (expression_statement "*(int *)((int)piVar27 + -0x14) = iVar29;" (assignment_expression "*(int *)((int)piVar27 + -0x14) = iVar29" (pointer_expression "*(int *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(int *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "iVar29")) (; ";")) (expression_statement "*(int *****)((int)piVar27 + -0x18) = ppppiVar17;" (assignment_expression "*(int *****)((int)piVar27 + -0x18) = ppppiVar17" (pointer_expression "*(int *****)((int)piVar27 + -0x18)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0x18)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0x18)" (( "(") (binary_expression "(int)piVar27 + -0x18" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "ppppiVar17")) (; ";")) (expression_statement "*(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;" (assignment_expression "*(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4" (pointer_expression "*(int *****)((int)piVar27 + -0x1c)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0x1c)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0x1c)" (( "(") (binary_expression "(int)piVar27 + -0x1c" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (cast_expression "(int ****)local_d4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_d4"))) (; ";")) (expression_statement "*(int *****)((int)piVar27 + -0x20) = ppppiVar24;" (assignment_expression "*(int *****)((int)piVar27 + -0x20) = ppppiVar24" (pointer_expression "*(int *****)((int)piVar27 + -0x20)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0x20)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0x20)" (( "(") (binary_expression "(int)piVar27 + -0x20" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "ppppiVar24")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x24) = 0x161203;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x24) = 0x161203" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x24)" (( "(") (binary_expression "(int)piVar27 + -0x24" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x161203")) (; ";")) (expression_statement "FUN_00167d90();" (call_expression "FUN_00167d90()" (identifier "FUN_00167d90") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_00160b99;" (goto "goto") (statement_identifier "LAB_00160b99") (; ";")) (} "}"))) (if_statement "if (0 < iVar29) {\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }" (if "if") (parenthesized_expression "(0 < iVar29)" (( "(") (binary_expression "0 < iVar29" (number_literal "0") (< "<") (identifier "iVar29")) () ")")) (compound_statement "{\n          iVar29 = iVar29 >> 6;\n          goto LAB_001609ce;\n        }" ({ "{") (expression_statement "iVar29 = iVar29 >> 6;" (assignment_expression "iVar29 = iVar29 >> 6" (identifier "iVar29") (= "=") (binary_expression "iVar29 >> 6" (identifier "iVar29") (>> ">>") (number_literal "6"))) (; ";")) (goto_statement "goto LAB_001609ce;" (goto "goto") (statement_identifier "LAB_001609ce") (; ";")) (} "}"))) (expression_statement "local_100 = local_11c;" (assignment_expression "local_100 = local_11c" (identifier "local_100") (= "=") (identifier "local_11c")) (; ";")) (labeled_statement "LAB_00160b72:\n        *(int *)((int)piVar27 + -4) = local_f8;" (statement_identifier "LAB_00160b72") (: ":") (expression_statement "*(int *)((int)piVar27 + -4) = local_f8;" (assignment_expression "*(int *)((int)piVar27 + -4) = local_f8" (pointer_expression "*(int *)((int)piVar27 + -4)" (* "*") (cast_expression "(int *)((int)piVar27 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -4)" (( "(") (binary_expression "(int)piVar27 + -4" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "local_f8")) (; ";"))) (expression_statement "*(int *)((int)piVar27 + -8) = local_fc;" (assignment_expression "*(int *)((int)piVar27 + -8) = local_fc" (pointer_expression "*(int *)((int)piVar27 + -8)" (* "*") (cast_expression "(int *)((int)piVar27 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -8)" (( "(") (binary_expression "(int)piVar27 + -8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_fc")) (; ";")) (expression_statement "*(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;" (assignment_expression "*(int *****)((int)piVar27 + -0xc) = (int ****)local_d4" (pointer_expression "*(int *****)((int)piVar27 + -0xc)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0xc)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (cast_expression "(int ****)local_d4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_d4"))) (; ";")) (expression_statement "*(int *****)((int)piVar27 + -0x10) = ppppiVar24;" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = ppppiVar24" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "ppppiVar24")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160b8a")) (; ";")) (expression_statement "FUN_00165ca0();" (call_expression "FUN_00165ca0()" (identifier "FUN_00165ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_b4 = (uint ***)0x0;" (assignment_expression "local_b4 = (uint ***)0x0" (identifier "local_b4") (= "=") (cast_expression "(uint ***)0x0" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppiVar17 = (int ****)0x0;" (assignment_expression "ppppiVar17 = (int ****)0x0" (identifier "ppppiVar17") (= "=") (cast_expression "(int ****)0x0" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00160b99:\n        ppppiVar24 = ppppiVar17;" (statement_identifier "LAB_00160b99") (: ":") (expression_statement "ppppiVar24 = ppppiVar17;" (assignment_expression "ppppiVar24 = ppppiVar17" (identifier "ppppiVar24") (= "=") (identifier "ppppiVar17")) (; ";"))) (if_statement "if ((int ****)local_b4 != ppppiVar17) {\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }" (if "if") (parenthesized_expression "((int ****)local_b4 != ppppiVar17)" (( "(") (binary_expression "(int ****)local_b4 != ppppiVar17" (cast_expression "(int ****)local_b4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_b4")) (!= "!=") (identifier "ppppiVar17")) () ")")) (compound_statement "{\n          do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);\n        }" ({ "{") (do_statement "do {\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          } while ((int ****)local_b4 != ppppiVar24);" (do "do") (compound_statement "{\n            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }\n            ppppiVar24 = ppppiVar24 + 0x10;\n          }" ({ "{") (if_statement "if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }" (if "if") (parenthesized_expression "((int ****)ppppiVar24[6] != ppppiVar24 + 8)" (( "(") (binary_expression "(int ****)ppppiVar24[6] != ppppiVar24 + 8" (cast_expression "(int ****)ppppiVar24[6]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "ppppiVar24[6]" (identifier "ppppiVar24") ([ "[") (number_literal "6") (] "]"))) (!= "!=") (binary_expression "ppppiVar24 + 8" (identifier "ppppiVar24") (+ "+") (number_literal "8"))) () ")")) (compound_statement "{\n              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];\n              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;\n              FUN_001e6db0();\n            }" ({ "{") (expression_statement "*(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];" (assignment_expression "*(int ****)((int)piVar27 + -0x10) = ppppiVar24[6]" (pointer_expression "*(int ****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int ****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "ppppiVar24[6]" (identifier "ppppiVar24") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160bc1")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "ppppiVar24 = ppppiVar24 + 0x10;" (assignment_expression "ppppiVar24 = ppppiVar24 + 0x10" (identifier "ppppiVar24") (= "=") (binary_expression "ppppiVar24 + 0x10" (identifier "ppppiVar24") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int ****)local_b4 != ppppiVar24)" (( "(") (binary_expression "(int ****)local_b4 != ppppiVar24" (cast_expression "(int ****)local_b4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_b4")) (!= "!=") (identifier "ppppiVar24")) () ")")) (; ";")) (} "}"))) (expression_statement "*(int *)((int)piVar27 + -0xc) = local_100;" (assignment_expression "*(int *)((int)piVar27 + -0xc) = local_100" (pointer_expression "*(int *)((int)piVar27 + -0xc)" (* "*") (cast_expression "(int *)((int)piVar27 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_100")) (; ";")) (expression_statement "*(int *****)((int)piVar27 + -0x10) = ppppiVar17;" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = ppppiVar17" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "ppppiVar17")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160be4" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160be4")) (; ";")) (expression_statement "FUN_001e6d70();" (call_expression "FUN_001e6d70()" (identifier "FUN_001e6d70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);" (assignment_expression "lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4)" (identifier "lVar30") (= "=") (call_expression "CONCAT44(local_d4._4_4_,(int ****)local_d4)" (identifier "CONCAT44") (argument_list "(local_d4._4_4_,(int ****)local_d4)" (( "(") (field_expression "local_d4._4_4_" (identifier "local_d4") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int ****)local_d4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_d4")) () ")")))) (; ";")) (expression_statement "ppppiVar24 = (int ****)local_d8[-1];" (assignment_expression "ppppiVar24 = (int ****)local_d8[-1]" (identifier "ppppiVar24") (= "=") (cast_expression "(int ****)local_d8[-1]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "local_d8[-1]" (identifier "local_d8") ([ "[") (number_literal "-1") (] "]")))) (; ";")) (if_statement "if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;" (if "if") (parenthesized_expression "((int ****)local_d8[-1] == (int ****)*local_d8)" (( "(") (binary_expression "(int ****)local_d8[-1] == (int ****)*local_d8" (cast_expression "(int ****)local_d8[-1]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "local_d8[-1]" (identifier "local_d8") ([ "[") (number_literal "-1") (] "]"))) (== "==") (cast_expression "(int ****)*local_d8" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*local_d8" (* "*") (identifier "local_d8")))) () ")")) (goto_statement "goto LAB_00160c00;" (goto "goto") (statement_identifier "LAB_00160c00") (; ";"))) (} "}"))) (do_statement "do {\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      } while ((int ****)*local_d8 != (int ****)local_b4);" (do "do") (compound_statement "{\n        local_b4 = (uint ***)ppppiVar24;\n        local_74 = (int ***)*local_b4;\n        local_70 = local_b4[1];\n        local_6c = local_b4[2];\n        local_68 = local_b4[3];\n        local_64 = local_b4[4];\n        local_60 = local_b4[5];\n        piVar27 = (int *)puVar28;\n        if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }\nLAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;\n        *(int *)((int)piVar27 + -0x10) = param_4;\n                    \n        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;\n        local_d4 = lVar30;\n        local_cc = lVar9;\n        local_c4 = lVar10;\n        FUN_000f5270();\n        local_cc = local_d4 + local_c4;\n        local_b4 = local_b4 + 0x10;\n        puVar28 = (undefined1 *)piVar27;\n        ppppiVar24 = (int ****)local_b4;\n        lVar30 = local_d4;\n      }" ({ "{") (expression_statement "local_b4 = (uint ***)ppppiVar24;" (assignment_expression "local_b4 = (uint ***)ppppiVar24" (identifier "local_b4") (= "=") (cast_expression "(uint ***)ppppiVar24" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppiVar24"))) (; ";")) (expression_statement "local_74 = (int ***)*local_b4;" (assignment_expression "local_74 = (int ***)*local_b4" (identifier "local_74") (= "=") (cast_expression "(int ***)*local_b4" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "*local_b4" (* "*") (identifier "local_b4")))) (; ";")) (expression_statement "local_70 = local_b4[1];" (assignment_expression "local_70 = local_b4[1]" (identifier "local_70") (= "=") (subscript_expression "local_b4[1]" (identifier "local_b4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_6c = local_b4[2];" (assignment_expression "local_6c = local_b4[2]" (identifier "local_6c") (= "=") (subscript_expression "local_b4[2]" (identifier "local_b4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_68 = local_b4[3];" (assignment_expression "local_68 = local_b4[3]" (identifier "local_68") (= "=") (subscript_expression "local_b4[3]" (identifier "local_b4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_64 = local_b4[4];" (assignment_expression "local_64 = local_b4[4]" (identifier "local_64") (= "=") (subscript_expression "local_b4[4]" (identifier "local_b4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_60 = local_b4[5];" (assignment_expression "local_60 = local_b4[5]" (identifier "local_60") (= "=") (subscript_expression "local_b4[5]" (identifier "local_b4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar27 = (int *)puVar28;" (assignment_expression "piVar27 = (int *)puVar28" (identifier "piVar27") (= "=") (cast_expression "(int *)puVar28" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar28"))) (; ";")) (if_statement "if ((int ***)local_70 == (int ***)0x0) {\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }\n        else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }" (if "if") (parenthesized_expression "((int ***)local_70 == (int ***)0x0)" (( "(") (binary_expression "(int ***)local_70 == (int ***)0x0" (cast_expression "(int ***)local_70" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_70")) (== "==") (cast_expression "(int ***)0x0" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_d4 = lVar30;\n          if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n                    \n          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;\n          lVar30 = FUN_000ede20();\n          lVar9 = local_cc;\n          lVar10 = local_cc;\n          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;\n        }" ({ "{") (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" (identifier "local_d4") (= "=") (identifier "lVar30")) (; ";")) (if_statement "if ((uint ***)0xfffffffb < local_74) {\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }" (if "if") (parenthesized_expression "((uint ***)0xfffffffb < local_74)" (( "(") (binary_expression "(uint ***)0xfffffffb < local_74" (cast_expression "(uint ***)0xfffffffb" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0xfffffffb")) (< "<") (identifier "local_74")) () ")")) (compound_statement "{\n            ppuVar5 = (undefined **)(*local_64)[3];\n            if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }\n            lVar31 = *(longlong *)((int ***)local_64 + 9);\n            goto LAB_00160dde;\n          }" ({ "{") (expression_statement "ppuVar5 = (undefined **)(*local_64)[3];" (assignment_expression "ppuVar5 = (undefined **)(*local_64)[3]" (identifier "ppuVar5") (= "=") (cast_expression "(undefined **)(*local_64)[3]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "(*local_64)[3]" (parenthesized_expression "(*local_64)" (( "(") (pointer_expression "*local_64" (* "*") (identifier "local_64")) () ")")) ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (ppuVar5 != local_b8 + -0xc6e88) {\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }" (if "if") (parenthesized_expression "(ppuVar5 != local_b8 + -0xc6e88)" (( "(") (binary_expression "ppuVar5 != local_b8 + -0xc6e88" (identifier "ppuVar5") (!= "!=") (binary_expression "local_b8 + -0xc6e88" (identifier "local_b8") (+ "+") (number_literal "-0xc6e88"))) () ")")) (compound_statement "{\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              *(undefined4 *)(puVar28 + -0x14) = 0x161066;\n              lVar31 = (*(code *)ppuVar5)();\n              lVar30 = local_d4;\n              goto LAB_00160fa4;\n            }" ({ "{") (expression_statement "*(uint ***)(puVar28 + -0x10) = local_64;" (assignment_expression "*(uint ***)(puVar28 + -0x10) = local_64" (pointer_expression "*(uint ***)(puVar28 + -0x10)" (* "*") (cast_expression "(uint ***)(puVar28 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x161066;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x161066" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x161066")) (; ";")) (expression_statement "lVar31 = (*(code *)ppuVar5)();" (assignment_expression "lVar31 = (*(code *)ppuVar5)()" (identifier "lVar31") (= "=") (call_expression "(*(code *)ppuVar5)()" (parenthesized_expression "(*(code *)ppuVar5)" (( "(") (pointer_expression "*(code *)ppuVar5" (* "*") (cast_expression "(code *)ppuVar5" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar5"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" (identifier "lVar30") (= "=") (identifier "local_d4")) (; ";")) (goto_statement "goto LAB_00160fa4;" (goto "goto") (statement_identifier "LAB_00160fa4") (; ";")) (} "}"))) (expression_statement "lVar31 = *(longlong *)((int ***)local_64 + 9);" (assignment_expression "lVar31 = *(longlong *)((int ***)local_64 + 9)" (identifier "lVar31") (= "=") (pointer_expression "*(longlong *)((int ***)local_64 + 9)" (* "*") (cast_expression "(longlong *)((int ***)local_64 + 9)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int ***)local_64 + 9)" (( "(") (binary_expression "(int ***)local_64 + 9" (cast_expression "(int ***)local_64" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_64")) (+ "+") (number_literal "9")) () ")"))))) (; ";")) (goto_statement "goto LAB_00160dde;" (goto "goto") (statement_identifier "LAB_00160dde") (; ";")) (} "}"))) (expression_statement "local_bc = (uint ***)&local_74;" (assignment_expression "local_bc = (uint ***)&local_74" (identifier "local_bc") (= "=") (cast_expression "(uint ***)&local_74" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "&local_74" (& "&") (identifier "local_74")))) (; ";")) (expression_statement "*(uint ****)(puVar28 + -0x10) = local_bc;" (assignment_expression "*(uint ****)(puVar28 + -0x10) = local_bc" (pointer_expression "*(uint ****)(puVar28 + -0x10)" (* "*") (cast_expression "(uint ****)(puVar28 + -0x10)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160fd8;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160fd8" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160fd8")) (; ";")) (expression_statement "lVar30 = FUN_000ede20();" (assignment_expression "lVar30 = FUN_000ede20()" (identifier "lVar30") (= "=") (call_expression "FUN_000ede20()" (identifier "FUN_000ede20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" (identifier "lVar9") (= "=") (identifier "local_cc")) (; ";")) (expression_statement "lVar10 = local_cc;" (assignment_expression "lVar10 = local_cc" (identifier "lVar10") (= "=") (identifier "local_cc")) (; ";")) (if_statement "if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;" (if "if") (parenthesized_expression "(local_e0 != 0 || local_e4 != 0)" (( "(") (binary_expression "local_e0 != 0 || local_e4 != 0" (binary_expression "local_e0 != 0" (identifier "local_e0") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_e4 != 0" (identifier "local_e4") (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00160ffd;" (goto "goto") (statement_identifier "LAB_00160ffd") (; ";"))) (} "}")) (else_clause "else {\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }" (else "else") (compound_statement "{\n          uVar25 = (int)local_70 - 1U >> 5 & 1;\n          bVar20 = (byte)((int)local_70 - 1U);\n          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));\nLAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }\n          local_bc = (uint ***)&local_74;\n          *(uint ****)(puVar28 + -0x10) = local_bc;\n          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;\n          local_d4 = lVar30;\n          lVar30 = FUN_000ede20();\n          if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }\n          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);\n          local_cc._0_4_ = (uint)lVar9;\n          lVar30 = lVar31 + lVar9 + -1;\n          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;\n          local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));\n          lVar30 = local_d4;\n          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n          if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }\n        }" ({ "{") (expression_statement "uVar25 = (int)local_70 - 1U >> 5 & 1;" (assignment_expression "uVar25 = (int)local_70 - 1U >> 5 & 1" (identifier "uVar25") (= "=") (binary_expression "(int)local_70 - 1U >> 5 & 1" (binary_expression "(int)local_70 - 1U >> 5" (binary_expression "(int)local_70 - 1U" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (- "-") (number_literal "1U")) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "bVar20 = (byte)((int)local_70 - 1U);" (assignment_expression "bVar20 = (byte)((int)local_70 - 1U)" (identifier "bVar20") (= "=") (call_expression "(byte)((int)local_70 - 1U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((int)local_70 - 1U)" (( "(") (binary_expression "(int)local_70 - 1U" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (- "-") (number_literal "1U")) () ")")))) (; ";")) (expression_statement "lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));" (assignment_expression "lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f))" (identifier "lVar31") (= "=") (call_expression "CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f))" (identifier "CONCAT44") (argument_list "(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f))" (( "(") (binary_expression "uVar25 << (bVar20 & 0x1f)" (identifier "uVar25") (<< "<<") (parenthesized_expression "(bVar20 & 0x1f)" (( "(") (binary_expression "bVar20 & 0x1f" (identifier "bVar20") (& "&") (number_literal "0x1f")) () ")"))) (, ",") (binary_expression "(uVar25 ^ 1) << (bVar20 & 0x1f)" (parenthesized_expression "(uVar25 ^ 1)" (( "(") (binary_expression "uVar25 ^ 1" (identifier "uVar25") (^ "^") (number_literal "1")) () ")")) (<< "<<") (parenthesized_expression "(bVar20 & 0x1f)" (( "(") (binary_expression "bVar20 & 0x1f" (identifier "bVar20") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (labeled_statement "LAB_00160fa4:\n          if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }" (statement_identifier "LAB_00160fa4") (: ":") (if_statement "if ((uint ***)0xfffffffb < local_74) {\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }" (if "if") (parenthesized_expression "((uint ***)0xfffffffb < local_74)" (( "(") (binary_expression "(uint ***)0xfffffffb < local_74" (cast_expression "(uint ***)0xfffffffb" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0xfffffffb")) (< "<") (identifier "local_74")) () ")")) (compound_statement "{\nLAB_00160dde:\n            ppuVar11 = local_64;\n            if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }\n          }" ({ "{") (labeled_statement "LAB_00160dde:\n            ppuVar11 = local_64;" (statement_identifier "LAB_00160dde") (: ":") (expression_statement "ppuVar11 = local_64;" (assignment_expression "ppuVar11 = local_64" (identifier "ppuVar11") (= "=") (identifier "local_64")) (; ";"))) (if_statement "if (((uint)local_64[7] & 2) == 0) {\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }" (if "if") (parenthesized_expression "(((uint)local_64[7] & 2) == 0)" (( "(") (binary_expression "((uint)local_64[7] & 2) == 0" (parenthesized_expression "((uint)local_64[7] & 2)" (( "(") (binary_expression "(uint)local_64[7] & 2" (cast_expression "(uint)local_64[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_64[7]" (identifier "local_64") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              ppiVar6 = (int **)*local_64;\n              *(uint ***)(puVar28 + -0x10) = local_64;\n              pcVar3 = (code *)ppiVar6[0xe];\n              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;\n              local_d4 = lVar30;\n              (*pcVar3)();\n              lVar30 = local_d4;\n              if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }\n            }" ({ "{") (expression_statement "ppiVar6 = (int **)*local_64;" (assignment_expression "ppiVar6 = (int **)*local_64" (identifier "ppiVar6") (= "=") (cast_expression "(int **)*local_64" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*local_64" (* "*") (identifier "local_64")))) (; ";")) (expression_statement "*(uint ***)(puVar28 + -0x10) = local_64;" (assignment_expression "*(uint ***)(puVar28 + -0x10) = local_64" (pointer_expression "*(uint ***)(puVar28 + -0x10)" (* "*") (cast_expression "(uint ***)(puVar28 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "pcVar3 = (code *)ppiVar6[0xe];" (assignment_expression "pcVar3 = (code *)ppiVar6[0xe]" (identifier "pcVar3") (= "=") (cast_expression "(code *)ppiVar6[0xe]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar6[0xe]" (identifier "ppiVar6") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160ded;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160ded" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160ded")) (; ";")) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" (identifier "local_d4") (= "=") (identifier "lVar30")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" (identifier "lVar30") (= "=") (identifier "local_d4")) (; ";")) (if_statement "if (((uint)ppuVar11[7] & 2) == 0) {\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }" (if "if") (parenthesized_expression "(((uint)ppuVar11[7] & 2) == 0)" (( "(") (binary_expression "((uint)ppuVar11[7] & 2) == 0" (parenthesized_expression "((uint)ppuVar11[7] & 2)" (( "(") (binary_expression "(uint)ppuVar11[7] & 2" (cast_expression "(uint)ppuVar11[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppuVar11[7]" (identifier "ppuVar11") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;\n                *(undefined4 *)(puVar28 + -0xc) = 0x163;\n                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;\n                FUN_00069d00();\n              }" ({ "{") (expression_statement "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;" (assignment_expression "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a" (pointer_expression "*(undefined ***)(puVar28 + -8)" (* "*") (cast_expression "(undefined ***)(puVar28 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar28 + -8)" (( "(") (binary_expression "puVar28 + -8" (identifier "puVar28") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_b8 + -0x3dd6a" (identifier "local_b8") (+ "+") (number_literal "-0x3dd6a"))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0xc) = 0x163;" (assignment_expression "*(undefined4 *)(puVar28 + -0xc) = 0x163" (pointer_expression "*(undefined4 *)(puVar28 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0xc)" (( "(") (binary_expression "puVar28 + -0xc" (identifier "puVar28") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x163")) (; ";")) (expression_statement "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;" (assignment_expression "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55" (pointer_expression "*(undefined ***)(puVar28 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar28 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_b8 + -0x41c55" (identifier "local_b8") (+ "+") (number_literal "-0x41c55"))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x1614f8;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x1614f8" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1614f8")) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (expression_statement "local_bc = (uint ***)&local_74;" (assignment_expression "local_bc = (uint ***)&local_74" (identifier "local_bc") (= "=") (cast_expression "(uint ***)&local_74" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "&local_74" (& "&") (identifier "local_74")))) (; ";")) (expression_statement "*(uint ****)(puVar28 + -0x10) = local_bc;" (assignment_expression "*(uint ****)(puVar28 + -0x10) = local_bc" (pointer_expression "*(uint ****)(puVar28 + -0x10)" (* "*") (cast_expression "(uint ****)(puVar28 + -0x10)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160e12;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160e12" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160e12")) (; ";")) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" (identifier "local_d4") (= "=") (identifier "lVar30")) (; ";")) (expression_statement "lVar30 = FUN_000ede20();" (assignment_expression "lVar30 = FUN_000ede20()" (identifier "lVar30") (= "=") (call_expression "FUN_000ede20()" (identifier "FUN_000ede20") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_e0 == 0 && local_e4 == 0) {\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }\n          else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }" (if "if") (parenthesized_expression "(local_e0 == 0 && local_e4 == 0)" (( "(") (binary_expression "local_e0 == 0 && local_e4 == 0" (binary_expression "local_e0 == 0" (identifier "local_e0") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_e4 == 0" (identifier "local_e4") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n            local_d4 = lVar30;\n            lVar9 = local_cc;\n            lVar10 = local_cc;\n            if (lVar31 == 0) goto LAB_00160d28;\n          }" ({ "{") (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" (identifier "local_d4") (= "=") (identifier "lVar30")) (; ";")) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" (identifier "lVar9") (= "=") (identifier "local_cc")) (; ";")) (expression_statement "lVar10 = local_cc;" (assignment_expression "lVar10 = local_cc" (identifier "lVar10") (= "=") (identifier "local_cc")) (; ";")) (if_statement "if (lVar31 == 0) goto LAB_00160d28;" (if "if") (parenthesized_expression "(lVar31 == 0)" (( "(") (binary_expression "lVar31 == 0" (identifier "lVar31") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00160d28;" (goto "goto") (statement_identifier "LAB_00160d28") (; ";"))) (} "}")) (else_clause "else {\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }" (else "else") (compound_statement "{\nLAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);\n            local_d4 = lVar30;\n            if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -0xc) = local_e0;\n            *(uint *)(puVar28 + -0x10) = local_e4;\n            *(undefined4 *)(puVar28 + -0x14) = 0x161027;\n            local_70 = (uint **)FUN_0027b5b0();\n            lVar9 = local_cc;\n          }" ({ "{") (labeled_statement "LAB_00160ffd:\n            lVar31 = CONCAT44(local_e0,local_e4);" (statement_identifier "LAB_00160ffd") (: ":") (expression_statement "lVar31 = CONCAT44(local_e0,local_e4);" (assignment_expression "lVar31 = CONCAT44(local_e0,local_e4)" (identifier "lVar31") (= "=") (call_expression "CONCAT44(local_e0,local_e4)" (identifier "CONCAT44") (argument_list "(local_e0,local_e4)" (( "(") (identifier "local_e0") (, ",") (identifier "local_e4") () ")")))) (; ";"))) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" (identifier "local_d4") (= "=") (identifier "lVar30")) (; ";")) (if_statement "if (local_f0 != 0) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }" (if "if") (parenthesized_expression "(local_f0 != 0)" (( "(") (binary_expression "local_f0 != 0" (identifier "local_f0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;\n              *(undefined4 *)(puVar28 + -0xc) = 0xedf;\n              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;\n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;\n              FUN_00069d00();\n            }" ({ "{") (expression_statement "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;" (assignment_expression "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e" (pointer_expression "*(undefined ***)(puVar28 + -8)" (* "*") (cast_expression "(undefined ***)(puVar28 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar28 + -8)" (( "(") (binary_expression "puVar28 + -8" (identifier "puVar28") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_b8 + -0x3dd6e" (identifier "local_b8") (+ "+") (number_literal "-0x3dd6e"))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0xc) = 0xedf;" (assignment_expression "*(undefined4 *)(puVar28 + -0xc) = 0xedf" (pointer_expression "*(undefined4 *)(puVar28 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0xc)" (( "(") (binary_expression "puVar28 + -0xc" (identifier "puVar28") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xedf")) (; ";")) (expression_statement "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;" (assignment_expression "*(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55" (pointer_expression "*(undefined ***)(puVar28 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar28 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_b8 + -0x41c55" (identifier "local_b8") (+ "+") (number_literal "-0x41c55"))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x1614d7;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x1614d7" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1614d7")) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar28 + -0xc) = local_e0;" (assignment_expression "*(uint *)(puVar28 + -0xc) = local_e0" (pointer_expression "*(uint *)(puVar28 + -0xc)" (* "*") (cast_expression "(uint *)(puVar28 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0xc)" (( "(") (binary_expression "puVar28 + -0xc" (identifier "puVar28") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_e0")) (; ";")) (expression_statement "*(uint *)(puVar28 + -0x10) = local_e4;" (assignment_expression "*(uint *)(puVar28 + -0x10) = local_e4" (pointer_expression "*(uint *)(puVar28 + -0x10)" (* "*") (cast_expression "(uint *)(puVar28 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_e4")) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x161027;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x161027" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x161027")) (; ";")) (expression_statement "local_70 = (uint **)FUN_0027b5b0();" (assignment_expression "local_70 = (uint **)FUN_0027b5b0()" (identifier "local_70") (= "=") (cast_expression "(uint **)FUN_0027b5b0()" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_0027b5b0()" (identifier "FUN_0027b5b0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" (identifier "lVar9") (= "=") (identifier "local_cc")) (; ";")) (} "}")))) (expression_statement "local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);" (assignment_expression "local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20)" (field_expression "local_cc._4_4_" (identifier "local_cc") (. ".") (field_identifier "_4_4_")) (= "=") (call_expression "(uint)((ulonglong)lVar9 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar9 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar9 >> 0x20" (cast_expression "(ulonglong)lVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar9")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_cc._0_4_ = (uint)lVar9;" (assignment_expression "local_cc._0_4_ = (uint)lVar9" (field_expression "local_cc._0_4_" (identifier "local_cc") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint)lVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar9"))) (; ";")) (expression_statement "lVar30 = lVar31 + lVar9 + -1;" (assignment_expression "lVar30 = lVar31 + lVar9 + -1" (identifier "lVar30") (= "=") (binary_expression "lVar31 + lVar9 + -1" (binary_expression "lVar31 + lVar9" (identifier "lVar31") (+ "+") (identifier "lVar9")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;" (assignment_expression "local_c4._0_4_ = (uint)lVar30 & -(int)lVar31" (field_expression "local_c4._0_4_" (identifier "local_c4") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "(uint)lVar30 & -(int)lVar31" (cast_expression "(uint)lVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar30")) (& "&") (unary_expression "-(int)lVar31" (- "-") (cast_expression "(int)lVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar31"))))) (; ";")) (expression_statement "local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));" (assignment_expression "local_c4._4_4_ =\n               (uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (field_expression "local_c4._4_4_" (identifier "local_c4") (. ".") (field_identifier "_4_4_")) (= "=") (binary_expression "(uint)((ulonglong)lVar30 >> 0x20) &\n               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (call_expression "(uint)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar30 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar30")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (unary_expression "-((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (- "-") (parenthesized_expression "((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (( "(") (binary_expression "(int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)" (cast_expression "(int)((ulonglong)lVar31 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar31 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar31")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (call_expression "(uint)((int)lVar31 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)lVar31 != 0)" (( "(") (binary_expression "(int)lVar31 != 0" (cast_expression "(int)lVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar31")) (!= "!=") (number_literal "0")) () ")")))) () ")"))))) (; ";")) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" (identifier "lVar30") (= "=") (identifier "local_d4")) (; ";")) (expression_statement "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" (identifier "lVar10") (= "=") (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" (identifier "CONCAT44") (argument_list "(local_c4._4_4_,(uint)local_c4)" (( "(") (field_expression "local_c4._4_4_" (identifier "local_c4") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4")) () ")")))) (; ";")) (if_statement "if ((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }" (if "if") (parenthesized_expression "((local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0))" (( "(") (binary_expression "(local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&\n             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)" (parenthesized_expression "(local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4))" (( "(") (binary_expression "local_cc._4_4_ < local_c4._4_4_ ||\n               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)" (binary_expression "local_cc._4_4_ < local_c4._4_4_" (field_expression "local_cc._4_4_" (identifier "local_cc") (. ".") (field_identifier "_4_4_")) (< "<") (field_expression "local_c4._4_4_" (identifier "local_c4") (. ".") (field_identifier "_4_4_"))) (|| "||") (binary_expression "local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)" (binary_expression "local_cc._4_4_ - local_c4._4_4_" (field_expression "local_cc._4_4_" (identifier "local_cc") (. ".") (field_identifier "_4_4_")) (- "-") (field_expression "local_c4._4_4_" (identifier "local_c4") (. ".") (field_identifier "_4_4_"))) (< "<") (call_expression "(uint)((uint)local_cc < (uint)local_c4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)local_cc < (uint)local_c4)" (( "(") (binary_expression "(uint)local_cc < (uint)local_c4" (cast_expression "(uint)local_cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_cc")) (< "<") (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4"))) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)" (( "(") (comma_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" (identifier "lVar10") (= "=") (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" (identifier "CONCAT44") (argument_list "(local_c4._4_4_,(uint)local_c4)" (( "(") (field_expression "local_c4._4_4_" (identifier "local_c4") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4")) () ")")))) (, ",") (binary_expression "*(int *)(param_10 + 4) != 0" (pointer_expression "*(int *)(param_10 + 4)" (* "*") (cast_expression "(int *)(param_10 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_10 + 4)" (( "(") (binary_expression "param_10 + 4" (identifier "param_10") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            local_cc = lVar9;\n            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }\n            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;\n            *(int *)(puVar28 + -8) = param_10;\n            *(int *)(puVar28 + -0xc) = param_1;\n            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;\n            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;\n            FUN_0015b5e0();\n            *(undefined4 *)(puVar28 + -0x14) = 0x44;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;\n            pppiVar18 = (int ***)FUN_001e5200();\n            pppiVar18[1] = (int **)0x0;\n            pppiVar18[2] = (int **)0x0;\n            pppiVar18[3] = (int **)local_58;\n            pppiVar18[8] = (int **)0x0;\n            pppiVar18[9] = (int **)0x0;\n            pppiVar18[10] = (int **)0x0;\n            pppiVar18[4] = (int **)0x0;\n            pppiVar18[5] = (int **)0xffffffff;\n            pppiVar18[6] = (int **)0xffffffff;\n            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;\n            *pppiVar18 = (int **)(local_dc + 2);\n            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);\n            *(undefined4 *)(puVar28 + -8) = 0;\n            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;\n            *(undefined4 **)(puVar28 + -0x10) = local_5c;\n            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;\n            FUN_000513a0();\n            *(int ****)(puVar28 + -0x10) = pppiVar18;\n            *(int *)(puVar28 + -0x14) = param_4;\n                    \n            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;\n            FUN_000f2600();\n            local_a4 = (uint **)pppiVar18;\n            if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }\n            piVar27 = (int *)(puVar28 + -4);\n            lVar30 = local_d4;\n            lVar9 = local_cc;\n            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }\n          }" ({ "{") (expression_statement "local_cc = lVar9;" (assignment_expression "local_cc = lVar9" (identifier "local_cc") (= "=") (identifier "lVar9")) (; ";")) (if_statement "if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }" (if "if") (parenthesized_expression "(local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc))" (( "(") (binary_expression "local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)" (binary_expression "local_c4._4_4_ - local_cc._4_4_" (field_expression "local_c4._4_4_" (identifier "local_c4") (. ".") (field_identifier "_4_4_")) (- "-") (field_expression "local_cc._4_4_" (identifier "local_cc") (. ".") (field_identifier "_4_4_"))) (!= "!=") (call_expression "(uint)((uint)local_c4 < (uint)local_cc)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)local_c4 < (uint)local_cc)" (( "(") (binary_expression "(uint)local_c4 < (uint)local_cc" (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4")) (< "<") (cast_expression "(uint)local_cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_cc"))) () ")")))) () ")")) (compound_statement "{\n              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;\n              *(undefined4 *)(puVar28 + -0xc) = 0xc0;\n              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;\n                    \n                    \n              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;\n              FUN_00069d00();\n            }" ({ "{") (expression_statement "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;" (assignment_expression "*(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18" (pointer_expression "*(undefined ***)(puVar28 + -8)" (* "*") (cast_expression "(undefined ***)(puVar28 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar28 + -8)" (( "(") (binary_expression "puVar28 + -8" (identifier "puVar28") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_b8 + -0x3dd18" (identifier "local_b8") (+ "+") (number_literal "-0x3dd18"))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar28 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar28 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0xc)" (( "(") (binary_expression "puVar28 + -0xc" (identifier "puVar28") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc0")) (; ";")) (expression_statement "*(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;" (assignment_expression "*(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7" (pointer_expression "*(int *)(puVar28 + -0x10)" (* "*") (cast_expression "(int *)(puVar28 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_b8 + -0x107be7" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (+ "+") (number_literal "-0x107be7"))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x1614b6;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x1614b6" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1614b6")) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;" (assignment_expression "*(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc" (pointer_expression "*(uint *)(puVar28 + -4)" (* "*") (cast_expression "(uint *)(puVar28 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -4)" (( "(") (binary_expression "puVar28 + -4" (identifier "puVar28") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "(uint)local_c4 - (uint)local_cc" (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4")) (- "-") (cast_expression "(uint)local_cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_cc")))) (; ";")) (expression_statement "*(int *)(puVar28 + -8) = param_10;" (assignment_expression "*(int *)(puVar28 + -8) = param_10" (pointer_expression "*(int *)(puVar28 + -8)" (* "*") (cast_expression "(int *)(puVar28 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -8)" (( "(") (binary_expression "puVar28 + -8" (identifier "puVar28") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "param_10")) (; ";")) (expression_statement "*(int *)(puVar28 + -0xc) = param_1;" (assignment_expression "*(int *)(puVar28 + -0xc) = param_1" (pointer_expression "*(int *)(puVar28 + -0xc)" (* "*") (cast_expression "(int *)(puVar28 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0xc)" (( "(") (binary_expression "puVar28 + -0xc" (identifier "puVar28") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 ***)(puVar28 + -0x10) = &local_5c;" (assignment_expression "*(undefined4 ***)(puVar28 + -0x10) = &local_5c" (pointer_expression "*(undefined4 ***)(puVar28 + -0x10)" (* "*") (cast_expression "(undefined4 ***)(puVar28 + -0x10)" (( "(") (type_descriptor "undefined4 ***" (type_identifier "undefined4") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x160ec0;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x160ec0" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160ec0")) (; ";")) (expression_statement "FUN_0015b5e0();" (call_expression "FUN_0015b5e0()" (identifier "FUN_0015b5e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x14) = 0x44;" (assignment_expression "*(undefined4 *)(puVar28 + -0x14) = 0x44" (pointer_expression "*(undefined4 *)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x44")) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160ecf;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160ecf" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x18)" (( "(") (binary_expression "puVar28 + -0x18" (identifier "puVar28") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x160ecf")) (; ";")) (expression_statement "pppiVar18 = (int ***)FUN_001e5200();" (assignment_expression "pppiVar18 = (int ***)FUN_001e5200()" (identifier "pppiVar18") (= "=") (cast_expression "(int ***)FUN_001e5200()" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (call_expression "FUN_001e5200()" (identifier "FUN_001e5200") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppiVar18[1] = (int **)0x0;" (assignment_expression "pppiVar18[1] = (int **)0x0" (subscript_expression "pppiVar18[1]" (identifier "pppiVar18") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppiVar18[2] = (int **)0x0;" (assignment_expression "pppiVar18[2] = (int **)0x0" (subscript_expression "pppiVar18[2]" (identifier "pppiVar18") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppiVar18[3] = (int **)local_58;" (assignment_expression "pppiVar18[3] = (int **)local_58" (subscript_expression "pppiVar18[3]" (identifier "pppiVar18") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int **)local_58" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_58"))) (; ";")) (expression_statement "pppiVar18[8] = (int **)0x0;" (assignment_expression "pppiVar18[8] = (int **)0x0" (subscript_expression "pppiVar18[8]" (identifier "pppiVar18") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppiVar18[9] = (int **)0x0;" (assignment_expression "pppiVar18[9] = (int **)0x0" (subscript_expression "pppiVar18[9]" (identifier "pppiVar18") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppiVar18[10] = (int **)0x0;" (assignment_expression "pppiVar18[10] = (int **)0x0" (subscript_expression "pppiVar18[10]" (identifier "pppiVar18") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppiVar18[4] = (int **)0x0;" (assignment_expression "pppiVar18[4] = (int **)0x0" (subscript_expression "pppiVar18[4]" (identifier "pppiVar18") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppiVar18[5] = (int **)0xffffffff;" (assignment_expression "pppiVar18[5] = (int **)0xffffffff" (subscript_expression "pppiVar18[5]" (identifier "pppiVar18") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int **)0xffffffff" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppiVar18[6] = (int **)0xffffffff;" (assignment_expression "pppiVar18[6] = (int **)0xffffffff" (subscript_expression "pppiVar18[6]" (identifier "pppiVar18") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int **)0xffffffff" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "*(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(pppiVar18 + 7)" (* "*") (cast_expression "(byte *)(pppiVar18 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppiVar18 + 7)" (( "(") (binary_expression "pppiVar18 + 7" (identifier "pppiVar18") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(pppiVar18 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(pppiVar18 + 7) & 0xe0" (pointer_expression "*(byte *)(pppiVar18 + 7)" (* "*") (cast_expression "(byte *)(pppiVar18 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppiVar18 + 7)" (( "(") (binary_expression "pppiVar18 + 7" (identifier "pppiVar18") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "*pppiVar18 = (int **)(local_dc + 2);" (assignment_expression "*pppiVar18 = (int **)(local_dc + 2)" (pointer_expression "*pppiVar18" (* "*") (identifier "pppiVar18")) (= "=") (cast_expression "(int **)(local_dc + 2)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_dc + 2)" (( "(") (binary_expression "local_dc + 2" (identifier "local_dc") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);" (assignment_expression "pppiVar18[0xb] = (int **)(pppiVar18 + 0xd)" (subscript_expression "pppiVar18[0xb]" (identifier "pppiVar18") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(int **)(pppiVar18 + 0xd)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pppiVar18 + 0xd)" (( "(") (binary_expression "pppiVar18 + 0xd" (identifier "pppiVar18") (+ "+") (number_literal "0xd")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar28 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar28 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -8)" (( "(") (binary_expression "puVar28 + -8" (identifier "puVar28") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;" (assignment_expression "*(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c" (pointer_expression "*(int *)(puVar28 + -0xc)" (* "*") (cast_expression "(int *)(puVar28 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0xc)" (( "(") (binary_expression "puVar28 + -0xc" (identifier "puVar28") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "(int)local_58 + (int)local_5c" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (+ "+") (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")))) (; ";")) (expression_statement "*(undefined4 **)(puVar28 + -0x10) = local_5c;" (assignment_expression "*(undefined4 **)(puVar28 + -0x10) = local_5c" (pointer_expression "*(undefined4 **)(puVar28 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar28 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;" (assignment_expression "*(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb" (pointer_expression "*(int ****)(puVar28 + -0x14)" (* "*") (cast_expression "(int ****)(puVar28 + -0x14)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "pppiVar18 + 0xb" (identifier "pppiVar18") (+ "+") (number_literal "0xb"))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160f42;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160f42" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x18)" (( "(") (binary_expression "puVar28 + -0x18" (identifier "puVar28") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x160f42")) (; ";")) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" (identifier "FUN_000513a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(int ****)(puVar28 + -0x10) = pppiVar18;" (assignment_expression "*(int ****)(puVar28 + -0x10) = pppiVar18" (pointer_expression "*(int ****)(puVar28 + -0x10)" (* "*") (cast_expression "(int ****)(puVar28 + -0x10)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pppiVar18")) (; ";")) (expression_statement "*(int *)(puVar28 + -0x14) = param_4;" (assignment_expression "*(int *)(puVar28 + -0x14) = param_4" (pointer_expression "*(int *)(puVar28 + -0x14)" (* "*") (cast_expression "(int *)(puVar28 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160f4d;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160f4d" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x18)" (( "(") (binary_expression "puVar28 + -0x18" (identifier "puVar28") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x160f4d")) (; ";")) (expression_statement "FUN_000f2600();" (call_expression "FUN_000f2600()" (identifier "FUN_000f2600") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_a4 = (uint **)pppiVar18;" (assignment_expression "local_a4 = (uint **)pppiVar18" (identifier "local_a4") (= "=") (cast_expression "(uint **)pppiVar18" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pppiVar18"))) (; ";")) (if_statement "if (*(char *)(param_3 + 0x1d4) != '\0') {\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }" (if "if") (parenthesized_expression "(*(char *)(param_3 + 0x1d4) != '\0')" (( "(") (binary_expression "*(char *)(param_3 + 0x1d4) != '\0'" (pointer_expression "*(char *)(param_3 + 0x1d4)" (* "*") (cast_expression "(char *)(param_3 + 0x1d4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1d4)" (( "(") (binary_expression "param_3 + 0x1d4" (identifier "param_3") (+ "+") (number_literal "0x1d4")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              puVar14 = *(undefined4 **)(param_3 + 0x1dc);\n              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }\n            }" ({ "{") (expression_statement "puVar14 = *(undefined4 **)(param_3 + 0x1dc);" (assignment_expression "puVar14 = *(undefined4 **)(param_3 + 0x1dc)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" (* "*") (cast_expression "(undefined4 **)(param_3 + 0x1dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x1dc)" (( "(") (binary_expression "param_3 + 0x1dc" (identifier "param_3") (+ "+") (number_literal "0x1dc")) () ")"))))) (; ";")) (if_statement "if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }\n              else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }" (if "if") (parenthesized_expression "(puVar14 == *(undefined4 **)(param_3 + 0x1e0))" (( "(") (binary_expression "puVar14 == *(undefined4 **)(param_3 + 0x1e0)" (identifier "puVar14") (== "==") (pointer_expression "*(undefined4 **)(param_3 + 0x1e0)" (* "*") (cast_expression "(undefined4 **)(param_3 + 0x1e0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x1e0)" (( "(") (binary_expression "param_3 + 0x1e0" (identifier "param_3") (+ "+") (number_literal "0x1e0")) () ")"))))) () ")")) (compound_statement "{\n                *(uint ****)(puVar28 + -0xc) = &local_a4;\n                *(undefined4 **)(puVar28 + -0x10) = puVar14;\n                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;\n                    \n                *(undefined4 *)(puVar28 + -0x18) = 0x161091;\n                FUN_00163100();\n              }" ({ "{") (expression_statement "*(uint ****)(puVar28 + -0xc) = &local_a4;" (assignment_expression "*(uint ****)(puVar28 + -0xc) = &local_a4" (pointer_expression "*(uint ****)(puVar28 + -0xc)" (* "*") (cast_expression "(uint ****)(puVar28 + -0xc)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar28 + -0xc)" (( "(") (binary_expression "puVar28 + -0xc" (identifier "puVar28") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_a4" (& "&") (identifier "local_a4"))) (; ";")) (expression_statement "*(undefined4 **)(puVar28 + -0x10) = puVar14;" (assignment_expression "*(undefined4 **)(puVar28 + -0x10) = puVar14" (pointer_expression "*(undefined4 **)(puVar28 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar28 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + -0x10)" (( "(") (binary_expression "puVar28 + -0x10" (identifier "puVar28") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar14")) (; ";")) (expression_statement "*(int *)(puVar28 + -0x14) = param_3 + 0x1d8;" (assignment_expression "*(int *)(puVar28 + -0x14) = param_3 + 0x1d8" (pointer_expression "*(int *)(puVar28 + -0x14)" (* "*") (cast_expression "(int *)(puVar28 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "param_3 + 0x1d8" (identifier "param_3") (+ "+") (number_literal "0x1d8"))) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x161091;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x161091" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x18)" (( "(") (binary_expression "puVar28 + -0x18" (identifier "puVar28") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x161091")) (; ";")) (expression_statement "FUN_00163100();" (call_expression "FUN_00163100()" (identifier "FUN_00163100") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }" (else "else") (compound_statement "{\n                *puVar14 = pppiVar18;\n                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;\n              }" ({ "{") (expression_statement "*puVar14 = pppiVar18;" (assignment_expression "*puVar14 = pppiVar18" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "pppiVar18")) (; ";")) (expression_statement "*(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;" (assignment_expression "*(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1" (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" (* "*") (cast_expression "(undefined4 **)(param_3 + 0x1dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x1dc)" (( "(") (binary_expression "param_3 + 0x1dc" (identifier "param_3") (+ "+") (number_literal "0x1dc")) () ")")))) (= "=") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "piVar27 = (int *)(puVar28 + -4);" (assignment_expression "piVar27 = (int *)(puVar28 + -4)" (identifier "piVar27") (= "=") (cast_expression "(int *)(puVar28 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -4)" (( "(") (binary_expression "puVar28 + -4" (identifier "puVar28") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" (identifier "lVar30") (= "=") (identifier "local_d4")) (; ";")) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" (identifier "lVar9") (= "=") (identifier "local_cc")) (; ";")) (expression_statement "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" (identifier "lVar10") (= "=") (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" (identifier "CONCAT44") (argument_list "(local_c4._4_4_,(uint)local_c4)" (( "(") (field_expression "local_c4._4_4_" (identifier "local_c4") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4")) () ")")))) (; ";")) (if_statement "if (local_5c != &local_54) {\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }" (if "if") (parenthesized_expression "(local_5c != &local_54)" (( "(") (binary_expression "local_5c != &local_54" (identifier "local_5c") (!= "!=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) () ")")) (compound_statement "{\n              *(undefined4 **)(puVar28 + -0x14) = local_5c;\n              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;\n              FUN_001e6db0();\n              piVar27 = (int *)(puVar28 + -4);\n              lVar30 = local_d4;\n              lVar9 = local_cc;\n              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);\n            }" ({ "{") (expression_statement "*(undefined4 **)(puVar28 + -0x14) = local_5c;" (assignment_expression "*(undefined4 **)(puVar28 + -0x14) = local_5c" (pointer_expression "*(undefined4 **)(puVar28 + -0x14)" (* "*") (cast_expression "(undefined4 **)(puVar28 + -0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + -0x14)" (( "(") (binary_expression "puVar28 + -0x14" (identifier "puVar28") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined4 *)(puVar28 + -0x18) = 0x160f83;" (assignment_expression "*(undefined4 *)(puVar28 + -0x18) = 0x160f83" (pointer_expression "*(undefined4 *)(puVar28 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar28 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -0x18)" (( "(") (binary_expression "puVar28 + -0x18" (identifier "puVar28") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x160f83")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar27 = (int *)(puVar28 + -4);" (assignment_expression "piVar27 = (int *)(puVar28 + -4)" (identifier "piVar27") (= "=") (cast_expression "(int *)(puVar28 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + -4)" (( "(") (binary_expression "puVar28 + -4" (identifier "puVar28") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" (identifier "lVar30") (= "=") (identifier "local_d4")) (; ";")) (expression_statement "lVar9 = local_cc;" (assignment_expression "lVar9 = local_cc" (identifier "lVar9") (= "=") (identifier "local_cc")) (; ";")) (expression_statement "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);" (assignment_expression "lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4)" (identifier "lVar10") (= "=") (call_expression "CONCAT44(local_c4._4_4_,(uint)local_c4)" (identifier "CONCAT44") (argument_list "(local_c4._4_4_,(uint)local_c4)" (( "(") (field_expression "local_c4._4_4_" (identifier "local_c4") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4")) () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_00160d28:\n        *(uint ****)((int)piVar27 + -0xc) = local_bc;" (statement_identifier "LAB_00160d28") (: ":") (expression_statement "*(uint ****)((int)piVar27 + -0xc) = local_bc;" (assignment_expression "*(uint ****)((int)piVar27 + -0xc) = local_bc" (pointer_expression "*(uint ****)((int)piVar27 + -0xc)" (* "*") (cast_expression "(uint ****)((int)piVar27 + -0xc)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar27 + -0xc)" (( "(") (binary_expression "(int)piVar27 + -0xc" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_bc")) (; ";"))) (expression_statement "*(int *)((int)piVar27 + -0x10) = param_4;" (assignment_expression "*(int *)((int)piVar27 + -0x10) = param_4" (pointer_expression "*(int *)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160d3f")) (; ";")) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" (identifier "local_d4") (= "=") (identifier "lVar30")) (; ";")) (expression_statement "local_cc = lVar9;" (assignment_expression "local_cc = lVar9" (identifier "local_cc") (= "=") (identifier "lVar9")) (; ";")) (expression_statement "local_c4 = lVar10;" (assignment_expression "local_c4 = lVar10" (identifier "local_c4") (= "=") (identifier "lVar10")) (; ";")) (expression_statement "FUN_000f5270();" (call_expression "FUN_000f5270()" (identifier "FUN_000f5270") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_cc = local_d4 + local_c4;" (assignment_expression "local_cc = local_d4 + local_c4" (identifier "local_cc") (= "=") (binary_expression "local_d4 + local_c4" (identifier "local_d4") (+ "+") (identifier "local_c4"))) (; ";")) (expression_statement "local_b4 = local_b4 + 0x10;" (assignment_expression "local_b4 = local_b4 + 0x10" (identifier "local_b4") (= "=") (binary_expression "local_b4 + 0x10" (identifier "local_b4") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "puVar28 = (undefined1 *)piVar27;" (assignment_expression "puVar28 = (undefined1 *)piVar27" (identifier "puVar28") (= "=") (cast_expression "(undefined1 *)piVar27" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar27"))) (; ";")) (expression_statement "ppppiVar24 = (int ****)local_b4;" (assignment_expression "ppppiVar24 = (int ****)local_b4" (identifier "ppppiVar24") (= "=") (cast_expression "(int ****)local_b4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_b4"))) (; ";")) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" (identifier "lVar30") (= "=") (identifier "local_d4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int ****)*local_d8 != (int ****)local_b4)" (( "(") (binary_expression "(int ****)*local_d8 != (int ****)local_b4" (cast_expression "(int ****)*local_d8" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*local_d8" (* "*") (identifier "local_d8"))) (!= "!=") (cast_expression "(int ****)local_b4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_b4"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00160c00:\n    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);" (statement_identifier "LAB_00160c00") (: ":") (expression_statement "local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);" (assignment_expression "local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20)" (field_expression "local_d4._4_4_" (identifier "local_d4") (. ".") (field_identifier "_4_4_")) (= "=") (call_expression "(undefined4)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)lVar30 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar30")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_ec = (uint **)((int)local_ec + 1);" (assignment_expression "local_ec = (uint **)((int)local_ec + 1)" (identifier "local_ec") (= "=") (cast_expression "(uint **)((int)local_ec + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_ec + 1)" (( "(") (binary_expression "(int)local_ec + 1" (cast_expression "(int)local_ec" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ec")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_d8 = local_d8 + 3;" (assignment_expression "local_d8 = local_d8 + 3" (identifier "local_d8") (= "=") (binary_expression "local_d8 + 3" (identifier "local_d8") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (local_ec == (uint **)local_f4) {\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }" (if "if") (parenthesized_expression "(local_ec == (uint **)local_f4)" (( "(") (binary_expression "local_ec == (uint **)local_f4" (identifier "local_ec") (== "==") (cast_expression "(uint **)local_f4" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_f4"))) () ")")) (compound_statement "{\n      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }\n      *(longlong *)(param_1 + 0x40) = local_cc;\n      *(undefined4 *)(param_1 + 0x48) = *param_9;\n      puVar14 = local_114;\n      if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }\n      local_d4 = lVar30;\n      *(undefined4 **)((int)piVar27 + -0x10) = local_114;\n      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;\n      FUN_001e6db0();\n      return;\n    }" ({ "{") (if_statement "if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)) {\n        *param_7 = local_cc;\n      }\n      else {\n        local_cc = *param_7;\n      }" (if "if") (parenthesized_expression "(((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8))" (( "(") (binary_expression "((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||\n         (*(int *)(param_4 + 0x50) != 8)" (parenthesized_expression "((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0))" (( "(") (binary_expression "(param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)" (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_4 + 0x55) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(param_4 + 0x55) & 4) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0x55) & 4)" (( "(") (binary_expression "*(byte *)(param_4 + 0x55) & 4" (pointer_expression "*(byte *)(param_4 + 0x55)" (* "*") (cast_expression "(byte *)(param_4 + 0x55)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x55)" (( "(") (binary_expression "param_4 + 0x55" (identifier "param_4") (+ "+") (number_literal "0x55")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_4 + 0x50) != 8)" (( "(") (binary_expression "*(int *)(param_4 + 0x50) != 8" (pointer_expression "*(int *)(param_4 + 0x50)" (* "*") (cast_expression "(int *)(param_4 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x50)" (( "(") (binary_expression "param_4 + 0x50" (identifier "param_4") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n        *param_7 = local_cc;\n      }" ({ "{") (expression_statement "*param_7 = local_cc;" (assignment_expression "*param_7 = local_cc" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "local_cc")) (; ";")) (} "}")) (else_clause "else {\n        local_cc = *param_7;\n      }" (else "else") (compound_statement "{\n        local_cc = *param_7;\n      }" ({ "{") (expression_statement "local_cc = *param_7;" (assignment_expression "local_cc = *param_7" (identifier "local_cc") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (} "}")))) (expression_statement "*(longlong *)(param_1 + 0x40) = local_cc;" (assignment_expression "*(longlong *)(param_1 + 0x40) = local_cc" (pointer_expression "*(longlong *)(param_1 + 0x40)" (* "*") (cast_expression "(longlong *)(param_1 + 0x40)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "local_cc")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x48) = *param_9;" (assignment_expression "*(undefined4 *)(param_1 + 0x48) = *param_9" (pointer_expression "*(undefined4 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (pointer_expression "*param_9" (* "*") (identifier "param_9"))) (; ";")) (expression_statement "puVar14 = local_114;" (assignment_expression "puVar14 = local_114" (identifier "puVar14") (= "=") (identifier "local_114")) (; ";")) (if_statement "if (local_110 != local_114) {\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }" (if "if") (parenthesized_expression "(local_110 != local_114)" (( "(") (binary_expression "local_110 != local_114" (identifier "local_110") (!= "!=") (identifier "local_114")) () ")")) (compound_statement "{\n        do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);\n      }" ({ "{") (do_statement "do {\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        } while (puVar14 != local_110);" (do "do") (compound_statement "{\n          ppppiVar24 = (int ****)puVar14[1];\n          ppppiVar17 = (int ****)*puVar14;\n          if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }\n          if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }\n          puVar14 = puVar14 + 3;\n        }" ({ "{") (expression_statement "ppppiVar24 = (int ****)puVar14[1];" (assignment_expression "ppppiVar24 = (int ****)puVar14[1]" (identifier "ppppiVar24") (= "=") (cast_expression "(int ****)puVar14[1]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "ppppiVar17 = (int ****)*puVar14;" (assignment_expression "ppppiVar17 = (int ****)*puVar14" (identifier "ppppiVar17") (= "=") (cast_expression "(int ****)*puVar14" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (; ";")) (if_statement "if (ppppiVar24 != ppppiVar17) {\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }" (if "if") (parenthesized_expression "(ppppiVar24 != ppppiVar17)" (( "(") (binary_expression "ppppiVar24 != ppppiVar17" (identifier "ppppiVar24") (!= "!=") (identifier "ppppiVar17")) () ")")) (compound_statement "{\n            do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);\n            ppppiVar17 = (int ****)*puVar14;\n          }" ({ "{") (do_statement "do {\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            } while (ppppiVar24 != (int ****)local_b4);" (do "do") (compound_statement "{\n              local_b4 = (uint ***)ppppiVar17;\n              if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }\n              local_b4 = local_b4 + 0x10;\n              ppppiVar17 = (int ****)local_b4;\n            }" ({ "{") (expression_statement "local_b4 = (uint ***)ppppiVar17;" (assignment_expression "local_b4 = (uint ***)ppppiVar17" (identifier "local_b4") (= "=") (cast_expression "(uint ***)ppppiVar17" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppiVar17"))) (; ";")) (if_statement "if ((uint ***)local_b4[6] != local_b4 + 8) {\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }" (if "if") (parenthesized_expression "((uint ***)local_b4[6] != local_b4 + 8)" (( "(") (binary_expression "(uint ***)local_b4[6] != local_b4 + 8" (cast_expression "(uint ***)local_b4[6]" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_b4[6]" (identifier "local_b4") ([ "[") (number_literal "6") (] "]"))) (!= "!=") (binary_expression "local_b4 + 8" (identifier "local_b4") (+ "+") (number_literal "8"))) () ")")) (compound_statement "{\n                local_d4 = lVar30;\n                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];\n                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;\n                FUN_001e6db0();\n                lVar30 = local_d4;\n              }" ({ "{") (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" (identifier "local_d4") (= "=") (identifier "lVar30")) (; ";")) (expression_statement "*(uint ***)((int)piVar27 + -0x10) = local_b4[6];" (assignment_expression "*(uint ***)((int)piVar27 + -0x10) = local_b4[6]" (pointer_expression "*(uint ***)((int)piVar27 + -0x10)" (* "*") (cast_expression "(uint ***)((int)piVar27 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_b4[6]" (identifier "local_b4") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160caf" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160caf")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" (identifier "lVar30") (= "=") (identifier "local_d4")) (; ";")) (} "}"))) (expression_statement "local_b4 = local_b4 + 0x10;" (assignment_expression "local_b4 = local_b4 + 0x10" (identifier "local_b4") (= "=") (binary_expression "local_b4 + 0x10" (identifier "local_b4") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "ppppiVar17 = (int ****)local_b4;" (assignment_expression "ppppiVar17 = (int ****)local_b4" (identifier "ppppiVar17") (= "=") (cast_expression "(int ****)local_b4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_b4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppiVar24 != (int ****)local_b4)" (( "(") (binary_expression "ppppiVar24 != (int ****)local_b4" (identifier "ppppiVar24") (!= "!=") (cast_expression "(int ****)local_b4" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_b4"))) () ")")) (; ";")) (expression_statement "ppppiVar17 = (int ****)*puVar14;" (assignment_expression "ppppiVar17 = (int ****)*puVar14" (identifier "ppppiVar17") (= "=") (cast_expression "(int ****)*puVar14" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (; ";")) (} "}"))) (if_statement "if (ppppiVar17 != (int ****)0x0) {\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }" (if "if") (parenthesized_expression "(ppppiVar17 != (int ****)0x0)" (( "(") (binary_expression "ppppiVar17 != (int ****)0x0" (identifier "ppppiVar17") (!= "!=") (cast_expression "(int ****)0x0" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_d4 = lVar30;\n            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;\n            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;\n            FUN_001e6db0();\n            lVar30 = local_d4;\n          }" ({ "{") (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" (identifier "local_d4") (= "=") (identifier "lVar30")) (; ";")) (expression_statement "*(int *****)((int)piVar27 + -0x10) = ppppiVar17;" (assignment_expression "*(int *****)((int)piVar27 + -0x10) = ppppiVar17" (pointer_expression "*(int *****)((int)piVar27 + -0x10)" (* "*") (cast_expression "(int *****)((int)piVar27 + -0x10)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "ppppiVar17")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160cd8")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar30 = local_d4;" (assignment_expression "lVar30 = local_d4" (identifier "lVar30") (= "=") (identifier "local_d4")) (; ";")) (} "}"))) (expression_statement "puVar14 = puVar14 + 3;" (assignment_expression "puVar14 = puVar14 + 3" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != local_110)" (( "(") (binary_expression "puVar14 != local_110" (identifier "puVar14") (!= "!=") (identifier "local_110")) () ")")) (; ";")) (} "}"))) (expression_statement "local_d4 = lVar30;" (assignment_expression "local_d4 = lVar30" (identifier "local_d4") (= "=") (identifier "lVar30")) (; ";")) (expression_statement "*(undefined4 **)((int)piVar27 + -0x10) = local_114;" (assignment_expression "*(undefined4 **)((int)piVar27 + -0x10) = local_114" (pointer_expression "*(undefined4 **)((int)piVar27 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)piVar27 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar27 + -0x10)" (( "(") (binary_expression "(int)piVar27 + -0x10" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_114")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;" (assignment_expression "*(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa" (pointer_expression "*(undefined4 *)((int)piVar27 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar27 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + -0x14)" (( "(") (binary_expression "(int)piVar27 + -0x14" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x160cfa")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (expression_statement "iVar29 = iVar29 >> 1;" (assignment_expression "iVar29 = iVar29 >> 1" (identifier "iVar29") (= "=") (binary_expression "iVar29 >> 1" (identifier "iVar29") (>> ">>") (number_literal "1"))) (; ";")) (if_statement "if (iVar29 == 0) goto LAB_00160b72;" (if "if") (parenthesized_expression "(iVar29 == 0)" (( "(") (binary_expression "iVar29 == 0" (identifier "iVar29") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00160b72;" (goto "goto") (statement_identifier "LAB_00160b72") (; ";"))) (goto_statement "goto LAB_001609e8;" (goto "goto") (statement_identifier "LAB_001609e8") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void set_section_addresses(Output_section_element_input * this,
   Symbol_table * param_1, Layout * layout, Output_section * output_section, uint64_t subalign,
   uint64_t * dot_value, uint64_t * param_6, Output_section * * dot_section, string * fill,
   Input_section_list * input_sections) */

void __thiscall
var_72::type_1::function_1
          (type_1 *this,type_2 *param_1,type_3 *layout,
          type_4 *var_45,uint64_t subalign,uint64_t *var_41,uint64_t *param_6,
          type_4 **dot_section,type_5 *fill,type_6 *input_sections)

{
  int var_53;
  type_7 *var_52;
  size_t *psVar3;
  type_8 *var_17;
  type_9 **pp_Var5;
  type_9 *p_Var6;
  type_10 pcVar7;
  type_11 var_48;
  type_12 uVar9;
  type_12 *puVar10;
  type_13 **var_58;
  type_10 var_74;
  type_14 *var_29;
  type_15 var_64;
  type_16 lVar15;
  type_17 *pIVar16;
  type_18 *pRVar17;
  type_19 aVar18;
  type_20 _Var19;
  type_12 uVar20;
  bool bVar21;
  int *var_9;
  int var_36;
  type_10 var_5;
  type_17 *var_49;
  int var_51;
  type_21 *var_70;
  type_7 *var_23;
  type_22 var_61;
  type_10 var_6;
  type_23 var_8;
  type_14 *extraout_EDX;
  type_12 extraout_EDX_00;
  type_23 *var_38;
  type_23 var_3;
  type_23 *var_44;
  type_23 *var_56;
  type_17 *var_57;
  type_14 *var_13;
  type_14 *var_40;
  type_15 var_43;
  type_23 local_134 [2];
  size_t sStack_128;
  type_23 var_12 [4];
  int *var_10;
  int *var_79;
  type_23 *local_10c;
  type_23 *var_50;
  type_7 *var_54;
  int local_100;
  type_11 local_fc;
  type_11 local_f8;
  type_23 var_37;
  type_23 var_62;
  type_23 var_78;
  int local_e8;
  type_15 var_42;
  type_7 *local_dc;
  int *var_26;
  type_24 local_d4;
  type_23 var_33;
  type_23 var_65;
  type_23 var_67;
  type_23 var_66;
  type_17 *local_bc;
  type_13 **var_30;
  type_24 local_b4;
  type_25 var_28 [24];
  type_25 *local_8c [2];
  type_25 local_84 [16];
  type_17 var_59;
  type_26 var_68;
  
  var_30 = &_GLOBAL_OFFSET_TABLE_;
  local_b4._0_4_ =
       (type_18 *)
       (this->input_section_patterns_).
       super__Vector_base<var_72::type_1::var_1,var_73::allocator<var_72::type_1::var_1>var_2>
       ._M_impl._M_finish;
  var_5 = (this->input_section_patterns_).
            super__Vector_base<var_72::Output_section_element_input::var_1,var_73::allocator<var_72::Output_section_element_input::var_1>var_2>
            ._M_impl._M_start;
  var_3 = (int)(type_18 *)local_b4 - (int)var_5 >> 5;
  var_33 = var_3;
  var_42 = subalign;
  if (var_3 != 0) {
    var_6 = (type_10)(((int)(type_18 *)local_b4 - (int)var_5) + (int)var_5);
    bVar21 = false;
    do {
      if (var_5->sort != var_4) {
        bVar21 = true;
      }
      var_5 = var_5 + 1;
    } while (var_6 != var_5);
    if (bVar21) {
      var_10 = (int *)var_7(var_3 * 0xc);
      var_9 = var_10;
      var_8 = var_3;
      do {
        *var_9 = 0;
        var_9[1] = 0;
        var_9[2] = 0;
        var_8 = var_8 - 1;
        var_9 = var_9 + 3;
      } while (var_8 != 0);
      var_79 = var_10 + var_3 * 3;
      var_13 = (input_sections->
                super__List_base<var_72::type_4::type_17,var_73::allocator<var_72::type_4::type_17>var_2>var_11
                )._M_impl._M_node.super__List_node_base._M_next;
      var_37 = var_33;
      goto joined_r0x001608d0;
    }
  }
  var_10 = (int *)var_7(0xc);
  var_37 = 1;
  *var_10 = 0;
  var_10[1] = 0;
  var_10[2] = 0;
  var_79 = var_10 + 3;
  var_13 = (input_sections->
            super__List_base<var_72::type_4::type_17,var_73::allocator<var_72::type_4::type_17>var_2>var_11
            )._M_impl._M_node.super__List_node_base._M_next;
joined_r0x001608d0:
  var_56 = var_12 + 2;
  if (var_13 != (type_14 *)input_sections) {
    local_d4 = var_14(local_d4._4_4_,&var_68.section_name_.field_2);
    local_bc = (type_17 *)var_28;
    var_44 = var_12 + 2;
    do {
      *(type_14 **)((int)var_44 + -0x10) = var_13 + 1;
                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */
      *(type_12 *)((int)var_44 + -0x14) = 0x160572;
      local_b4._0_4_ =
           type_4::Input_section::var_15(*(type_17 **)((int)var_44 + -0x10));
      *(type_14 **)((int)var_44 + -0x10) = var_13 + 1;
      *(type_12 *)((int)var_44 + -0x14) = 0x160586;
      var_3 = type_4::Input_section::var_16(*(type_17 **)((int)var_44 + -0x10));
      var_68.input_section_.shndx_ = (type_23)var_13[1]._M_next;
      var_68.input_section_.p2align_ = (type_23)var_13[1]._M_prev;
      var_68.input_section_.u1_.var_60._0_4_ = (var_13 + 1)[1]._M_next;
      var_68.input_section_.u1_.var_60._4_4_ = (var_13 + 1)[1]._M_prev;
      var_68.input_section_.u2_ = *(type_19 *)(var_13 + 3);
      var_68.section_name_.field_2._M_allocated_capacity =
           var_68.section_name_.field_2._M_allocated_capacity & 0xffffff00;
      var_68.input_section_.section_order_index_ = (type_23)var_13[3]._M_prev;
      var_68.section_name_._M_dataplus._M_p = (type_10)local_d4;
      var_17 = (((type_18 *)local_b4)->super_Object).input_file_;
      var_68.section_name_._M_string_length = 0;
      var_68.size_._0_4_ = (type_14 *)0x0;
      var_68.size_._4_4_ = (type_14 *)0x0;
      var_68.addralign_._0_4_ = 1;
      var_68.addralign_._4_4_ = 0;
      if (var_17 != (type_8 *)0x0) {
        *(type_12 *)((int)var_44 + -0xc) = 0xffffffff;
        *(type_27 **)((int)var_44 + -0x10) = &var_17->file_;
                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */
        *(type_12 *)((int)var_44 + -0x14) = 0x160600;
        File_read::var_18(*(type_27 **)((int)var_44 + -0x10),*(type_28 **)((int)var_44 + -0xc));
      }
      pp_Var5 = (((type_18 *)local_b4)->super_Object)._vptr_Object;
      *(type_23 *)((int)var_44 + -8) = var_3;
      *(type_18 **)((int)var_44 + -0xc) = (type_18 *)local_b4;
      *(type_17 **)((int)var_44 + -0x10) = local_bc;
                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */
      p_Var6 = pp_Var5[0x10];
      *(type_12 *)((int)var_44 + -0x14) = 0x160619;
      (*p_Var6)();
      *(type_12 *)((int)var_44 + -0x14) = var_28._0_4_;
                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */
      *(type_12 *)((int)var_44 + -0x18) = 0x16062a;
      bVar21 = var_19(*(char **)((int)var_44 + -0x14));
      if (bVar21) {
        var_26 = (int *)local_84;
        *(type_12 *)((int)var_44 + -8) = 0;
        *(type_25 **)((int)var_44 + -0xc) =
             (type_25 *)
             ((int)&((type_29 *)var_28._0_4_)->_vptr_Output_data + var_28._4_4_);
        *(type_12 *)((int)var_44 + -0x10) = var_28._0_4_;
        *(type_25 ***)((int)var_44 + -0x14) = local_8c;
        *(type_12 *)((int)var_44 + -0x18) = 0x160662;
        local_8c[0] = (type_25 *)var_26;
        std::__cxx11::basic_string<var_21,var_73::char_traits<var_21>,var_73::allocator<var_21>var_2>::
        var_20<var_21*>();
        *(type_25 ***)((int)var_44 + -0x10) = local_8c;
        *(type_17 **)((int)var_44 + -0x14) = &var_59;
                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */
        *(type_12 *)((int)var_44 + -0x18) = 0x160674;
        var_22
                  (*(type_5 **)((int)var_44 + -0x14),*(type_5 **)((int)var_44 + -0x10));
        uVar20 = var_68.section_name_.field_2._M_allocated_capacity;
        _Var19 = var_68.section_name_._M_dataplus;
        var_23 = &var_59.u1_;
        local_dc = (type_7 *)var_59.shndx_;
        if ((type_7 *)var_59.shndx_ == var_23) {
          if (var_59.p2align_ != 0) {
            if (var_59.p2align_ == 1) {
              *var_68.section_name_._M_dataplus._M_p = var_59.u1_.var_60._0_1_;
              var_68.section_name_._M_string_length = var_59.p2align_;
              var_68.section_name_._M_dataplus._M_p[1] = '\0';
              goto LAB_001606d8;
            }
            local_dc = var_23;
            *(type_23 *)((int)var_44 + -0xc) = var_59.p2align_;
            *(type_7 **)((int)var_44 + -0x10) = var_23;
            *(type_10 *)((int)var_44 + -0x14) = var_68.section_name_._M_dataplus._M_p;
            *(type_12 *)((int)var_44 + -0x18) = 0x161301;
            var_24(*(void **)((int)var_44 + -0x14),*(void **)((int)var_44 + -0x10),
                   *(size_t *)((int)var_44 + -0xc));
            var_23 = local_dc;
          }
          var_68.section_name_._M_string_length = var_59.p2align_;
          var_68.section_name_._M_dataplus._M_p[var_59.p2align_] = '\0';
        }
        else {
          local_e8 = var_59.u1_.var_60._0_4_;
          if (var_68.section_name_._M_dataplus._M_p == (type_10)local_d4) {
            var_68.section_name_._M_string_length = var_59.p2align_;
            var_68.section_name_.field_2._M_allocated_capacity = var_59.u1_.var_60._0_4_;
            var_68.section_name_._M_dataplus._M_p = (type_10)var_59.shndx_;
          }
          else {
            var_68.section_name_._M_string_length = var_59.p2align_;
            var_78 = var_68.section_name_.field_2._M_allocated_capacity;
            var_68.section_name_.field_2._M_allocated_capacity = var_59.u1_.var_60._0_4_;
            var_68.section_name_._M_dataplus._M_p = (type_10)var_59.shndx_;
            if (_Var19._M_p != (type_10)0x0) {
              var_59.shndx_ = (type_23)_Var19._M_p;
              var_59.u1_.var_60._0_4_ = uVar20;
              goto LAB_001606d8;
            }
          }
          var_68.section_name_.field_2._M_allocated_capacity = var_59.u1_.var_60._0_4_;
          var_68.section_name_._M_string_length = var_59.p2align_;
          var_68.section_name_._M_dataplus._M_p = (type_10)var_59.shndx_;
          var_59.shndx_ = (type_23)var_23;
          var_23 = &var_59.u1_;
        }
LAB_001606d8:
        var_59.p2align_ = 0;
        *(type_25 *)var_59.shndx_ = 0;
        if ((type_7 *)var_59.shndx_ != var_23) {
          *(type_23 *)((int)var_44 + -0x14) = var_59.shndx_;
          *(type_12 *)((int)var_44 + -0x18) = 0x1606f8;
          var_25(*(void **)((int)var_44 + -0x14));
        }
        if ((int *)local_8c[0] != var_26) {
          *(type_25 **)((int)var_44 + -0x14) = local_8c[0];
          *(type_12 *)((int)var_44 + -0x18) = 0x160718;
          var_25(*(void **)((int)var_44 + -0x14));
        }
      }
      else {
        *(type_17 **)((int)var_44 + -0x10) = local_bc;
        *(type_5 **)((int)var_44 + -0x14) = &var_68.section_name_;
                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */
        *(type_12 *)((int)var_44 + -0x18) = 0x1610f8;
        std::string::var_27
                  (*(type_5 **)((int)var_44 + -0x14),*(type_5 **)((int)var_44 + -0x10));
      }
      var_56 = (type_23 *)((int)var_44 + -4);
      if ((type_21 *)var_28._0_4_ != (type_21 *)(var_28 + 8)) {
        *(type_12 *)((int)var_44 + -0x14) = var_28._0_4_;
        *(type_12 *)((int)var_44 + -0x18) = 0x16073a;
        var_25(*(void **)((int)var_44 + -0x14));
      }
      pRVar17 = (type_18 *)local_b4;
      if (var_13[1]._M_next == (type_14 *)0xfffffffc) {
        var_40 = var_13[3]._M_next;
        var_68.size_._0_4_ = var_40[1]._M_prev;
        var_68.size_._4_4_ = var_40[2]._M_next;
        var_29 = var_40->_M_next[1]._M_prev;
        if (var_29 == (type_14 *)(var_30 + -0xc6e88)) {
          var_68.addralign_ = *(uint64_t *)&var_40[4]._M_prev;
        }
        else {
          *(type_14 **)((int)var_44 + -0x14) = var_40;
                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */
          *(type_12 *)((int)var_44 + -0x18) = 0x16140c;
          var_68.addralign_ = (*(type_30 *)var_29)();
        }
      }
      else {
        pp_Var5 = (((type_18 *)local_b4)->super_Object)._vptr_Object;
        *(type_23 *)((int)var_44 + -0x10) = var_3;
        *(type_18 **)((int)var_44 + -0x14) = (type_18 *)local_b4;
                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */
        p_Var6 = pp_Var5[0xf];
        *(type_12 *)((int)var_44 + -0x18) = 0x160757;
        var_68.size_._0_4_ = (type_14 *)(*p_Var6)();
        pp_Var5 = (pRVar17->super_Object)._vptr_Object;
        *(type_23 *)((int)var_44 + -0x10) = var_3;
        *(type_18 **)((int)var_44 + -0x14) = pRVar17;
        p_Var6 = pp_Var5[0x17];
        *(type_12 *)((int)var_44 + -0x18) = 0x160767;
        var_68.size_._4_4_ = extraout_EDX;
        var_36 = (*p_Var6)();
        var_68.addralign_ = var_14(extraout_EDX_00,var_36);
      }
      var_17 = (((type_18 *)local_b4)->super_Object).input_file_;
      if (var_17 != (type_8 *)0x0) {
        *(type_12 *)((int)var_44 + -0x10) = 0xffffffff;
        *(type_27 **)((int)var_44 + -0x14) = &var_17->file_;
        *(type_12 *)((int)var_44 + -0x18) = 0x160791;
        File_read::var_31(*(type_27 **)((int)var_44 + -0x14),*(type_28 **)((int)var_44 + -0x10));
      }
      *(type_10 *)((int)var_44 + -0x10) =
           (((type_18 *)local_b4)->super_Object).name_._M_dataplus._M_p;
      *(type_1 **)((int)var_44 + -0x14) = this;
                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */
      *(type_12 *)((int)var_44 + -0x18) = 0x1607a8;
      bVar21 = var_32(*(type_1 **)((int)var_44 + -0x14),
                               *(char **)((int)var_44 + -0x10));
      if (bVar21) {
        var_5 = (this->input_section_patterns_).
                  super__Vector_base<var_72::Output_section_element_input::var_1,var_73::allocator<var_72::Output_section_element_input::var_1>var_2>
                  ._M_impl._M_start;
        if ((this->input_section_patterns_).
            super__Vector_base<var_72::type_1::var_1,var_73::allocator<var_72::type_1::var_1>var_2>
            ._M_impl._M_finish != var_5) {
          if (var_33 != 0) {
            var_3 = 0;
            while( true ) {
              pcVar7 = var_5[var_3].pattern._M_dataplus._M_p;
              if (var_5[var_3].pattern_is_wildcard == false) {
                *(type_10 *)((int)var_44 + -0x10) = pcVar7;
                *(type_10 *)((int)var_44 + -0x14) = var_68.section_name_._M_dataplus._M_p;
                *(type_12 *)((int)var_44 + -0x18) = 0x1607f0;
                var_36 = var_34(*(char **)((int)var_44 + -0x14),*(char **)((int)var_44 + -0x10));
              }
              else {
                *(type_12 *)((int)var_44 + -0xc) = 0;
                *(type_10 *)((int)var_44 + -0x10) = var_68.section_name_._M_dataplus._M_p;
                *(type_10 *)((int)var_44 + -0x14) = pcVar7;
                *(type_12 *)((int)var_44 + -0x18) = 0x160835;
                var_36 = var_35(*(char **)((int)var_44 + -0x14),*(char **)((int)var_44 + -0x10),
                                 *(int *)((int)var_44 + -0xc));
              }
              if (var_36 == 0) break;
              var_3 = var_3 + 1;
              if (var_3 == var_33) goto LAB_001610b0;
              var_5 = (this->input_section_patterns_).
                        super__Vector_base<var_72::Output_section_element_input::var_1,var_73::allocator<var_72::Output_section_element_input::var_1>var_2>
                        ._M_impl._M_start;
            }
            if (var_3 < var_33) {
              var_9 = var_10;
              if (var_3 < var_37) {
                var_9 = var_10 + var_3 * 3;
              }
              var_38 = (type_23 *)var_9[1];
              if (var_38 != (type_23 *)var_9[2]) goto LAB_00161250;
              *(type_26 **)((int)var_44 + -0xc) = &var_68;
              *(type_23 **)((int)var_44 + -0x10) = var_38;
              *(int **)((int)var_44 + -0x14) = var_9;
              *(type_12 *)((int)var_44 + -0x18) = 0x160881;
              std::vector<var_72::type_26,var_73::allocator<var_72::type_26>var_2>::
              _M_realloc_insert<const_gold::type_26&>
                        (*(vector<var_72::type_26,var_73::allocator<var_72::type_26>var_2>
                           **var_11)((int)var_44 + -0x14),*(type_26 **)((int)var_44 + -0x10),
                         *(type_26 **)((int)var_44 + -0xc));
              goto LAB_001612ad;
            }
          }
          goto LAB_001610b0;
        }
        var_38 = (type_23 *)var_10[1];
        var_9 = var_10;
        if (var_38 == (type_23 *)var_10[2]) {
          *(type_26 **)((int)var_44 + -0xc) = &var_68;
          *(type_23 **)((int)var_44 + -0x10) = var_38;
          *(int **)((int)var_44 + -0x14) = var_10;
                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */
          *(type_12 *)((int)var_44 + -0x18) = 0x161485;
          std::vector<var_72::type_26,var_73::allocator<var_72::type_26>var_2>::
          _M_realloc_insert<const_gold::type_26&>
                    (*(vector<var_72::type_26,var_73::allocator<var_72::type_26>var_2>
                       **var_11)((int)var_44 + -0x14),*(type_26 **)((int)var_44 + -0x10),
                     *(type_26 **)((int)var_44 + -0xc));
        }
        else {
LAB_00161250:
          *var_38 = var_68.input_section_.shndx_;
          var_38[1] = var_68.input_section_.p2align_;
          var_38[2] = var_68.input_section_.u1_.var_60._0_4_;
          var_38[3] = var_68.input_section_.u1_.var_60._4_4_;
          *(type_19 *)(var_38 + 4) = var_68.input_section_.u2_;
          var_38[5] = var_68.input_section_.section_order_index_;
          var_38[6] = (type_23)(var_38 + 8);
          *(type_12 *)((int)var_44 + -8) = 0;
          *(type_10 *)((int)var_44 + -0xc) =
               var_68.section_name_._M_dataplus._M_p + var_68.section_name_._M_string_length;
          *(type_10 *)((int)var_44 + -0x10) = var_68.section_name_._M_dataplus._M_p;
          *(type_23 **)((int)var_44 + -0x14) = var_38 + 6;
                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */
          *(type_12 *)((int)var_44 + -0x18) = 0x16128e;
          std::__cxx11::basic_string<var_21,var_73::char_traits<var_21>,var_73::allocator<var_21>var_2>::
          var_20<var_21*>();
          var_38[0xc] = (type_23)(type_14 *)var_68.size_;
          var_38[0xd] = (type_23)var_68.size_._4_4_;
          *(uint64_t *)(var_38 + 0xe) = var_68.addralign_;
          var_9[1] = var_9[1] + 0x40;
        }
LAB_001612ad:
        var_40 = var_13->_M_next;
        psVar3 = &(input_sections->
                  super__List_base<var_72::type_4::type_17,var_73::allocator<var_72::type_4::type_17>var_2>var_11
                  )._M_impl._M_node._M_size;
        *psVar3 = *psVar3 - 1;
        *(type_14 **)((int)var_44 + -0x14) = var_13;
        *(type_12 *)((int)var_44 + -0x18) = 0x1612c5;
        std::__detail::_List_node_base::var_39(*(type_14 **)((int)var_44 + -0x14));
        *(type_14 **)((int)var_44 + -0x14) = var_13;
        *(type_12 *)((int)var_44 + -0x18) = 0x1612d5;
        var_25(*(void **)((int)var_44 + -0x14));
      }
      else {
LAB_001610b0:
        var_40 = (((_List_base<var_72::type_4::type_17,var_73::allocator<var_72::type_4::type_17>var_2>
                     *var_11)&var_13->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;
      }
      if (var_68.section_name_._M_dataplus._M_p != (type_10)local_d4) {
        *(type_10 *)((int)var_44 + -0x14) = var_68.section_name_._M_dataplus._M_p;
        *(type_12 *)((int)var_44 + -0x18) = 0x1610cc;
        var_25(*(void **)((int)var_44 + -0x14));
      }
      var_44 = (type_23 *)((int)var_44 + -4);
      var_13 = var_40;
    } while (var_40 != (type_14 *)input_sections);
  }
  var_78 = 0;
  var_33 = (type_23)*var_41;
  var_65 = *(type_23 *)((int)var_41 + 4);
  var_26 = var_10 + 1;
  local_dc = (type_7 *)(var_30 + -0x2d01);
  var_43 = var_42 - 1;
  local_b4 = var_43;
  var_62 = (type_23)((var_43 & var_42) >> 0x20) | (type_23)(var_43 & var_42);
  local_e8 = (int)var_30 + -0xeb73d;
  var_12[2] = (int)var_30 + -0xeb73d;
  do {
    var_58 = var_30;
    local_b4._4_4_ = (type_12)(var_43 >> 0x20);
    var_44 = (type_23 *)*var_26;
    var_38 = (type_23 *)var_26[-1];
    local_d4 = var_14(local_d4._4_4_,var_44);
    if (var_44 != var_38) {
      if (var_45 == (type_4 *)0x0) {
        local_b4 = var_43;
        var_56[-2] = (type_23)(var_30 + -0x3dd65);
        var_56[-3] = 0x6ed;
        var_56[-4] = (int)var_58 + -0xf7f6d;
                    /* WARNING: Subroutine does not return */
        var_56[-5] = (type_23)&var_46;
        var_47((char *)var_56[-4],var_56[-3],(char *)var_56[-2]);
      }
      var_48 = (this->input_section_patterns_).
              super__Vector_base<var_72::Output_section_element_input::var_1,var_73::allocator<var_72::Output_section_element_input::var_1>var_2>
              ._M_impl._M_start[var_78].sort;
      if (var_48 != var_4 || this->filename_sort_ != var_4) {
        local_fc = this->filename_sort_;
        local_f8 = var_48;
        var_36 = (int)var_44 - (int)var_38;
        if (0x7fffffc0 < var_36) {
          var_36 = 0x1ffffff;
LAB_001609ce:
          local_100 = local_e8;
LAB_001609e8:
          var_56[-3] = local_e8;
          var_56[-4] = var_36 << 6;
          local_b4._0_4_ = (type_18 *)(var_36 << 6);
          var_56[-5] = 0x160a08;
          var_49 = (type_17 *)var_7(var_56[-4],(type_31 *)var_56[-3]);
          var_51 = (int)(type_18 *)local_b4;
          var_43 = var_14(local_b4._4_4_,(type_18 *)local_b4);
          if (var_49 == (type_17 *)0x0) break;
          var_50 = var_38 + 8;
          local_b4._0_4_ = (type_18 *)((int)&var_49->shndx_ + (int)(type_18 *)local_b4);
          var_49->shndx_ = *var_38;
          var_49->p2align_ = var_38[1];
          *(type_23 *)&var_49->u1_ = var_38[2];
          *(type_23 *)((int)&var_49->u1_ + 4) = var_38[3];
          var_49->u2_ = *(type_19 *)(var_38 + 4);
          var_49->section_order_index_ = var_38[5];
          var_23 = &var_49[1].u1_;
          var_49[1].shndx_ = (type_23)var_23;
          if ((type_23 *)var_38[6] == var_50) {
            *(type_23 *)&var_49[1].u1_ = var_38[8];
            *(type_23 *)((int)&var_49[1].u1_ + 4) = var_38[9];
            var_49[1].u2_ = *(type_19 *)(var_38 + 10);
            var_49[1].section_order_index_ = var_38[0xb];
          }
          else {
            var_49[1].shndx_ = var_38[6];
            *(type_23 *)&var_49[1].u1_ = var_38[8];
          }
          var_3 = var_38[0xd];
          var_49[1].p2align_ = var_38[7];
          var_38[7] = 0;
          var_38[6] = (type_23)var_50;
          var_8 = var_38[0xc];
          *(type_25 *)(var_38 + 8) = 0;
          var_49[2].p2align_ = var_3;
          var_3 = var_38[0xf];
          var_49[2].shndx_ = var_8;
          var_8 = var_38[0xe];
          *(type_23 *)((int)&var_49[2].u1_ + 4) = var_3;
          *(type_23 *)&var_49[2].u1_ = var_8;
          if ((type_18 *)local_b4 == (type_18 *)&var_49[2].u2_) {
            local_bc = var_49;
          }
          else {
            var_12[3] = var_36;
            var_53 = var_51 + -0x20;
            do {
              puVar10 = (type_12 *)((type_17 *)(var_23 + -1))->shndx_;
              *(type_12 *)(var_23 + 4) = *(type_12 *)(var_23 + -4);
              *(type_12 *)((int)var_23 + 0x24) = *(type_12 *)((int)var_23 + -0x1c);
              *(type_12 *)(var_23 + 5) = *(type_12 *)(var_23 + -3);
              *(type_12 *)((int)var_23 + 0x2c) = *(type_12 *)((int)var_23 + -0x14);
              *(type_12 *)(var_23 + 6) = *(type_12 *)(var_23 + -2);
              *(type_12 *)((int)var_23 + 0x34) = *(type_12 *)((int)var_23 + -0xc);
              var_52 = var_23 + 8;
              *(type_7 **)(var_23 + 7) = var_52;
              if (var_23 == (type_7 *)puVar10) {
                *(type_12 *)(var_23 + 8) = *(type_12 *)var_23;
                *(type_12 *)((int)var_23 + 0x44) = *(type_12 *)((int)var_23 + 4);
                *(type_19 *)(var_23 + 9) =
                     *(type_19 *)(var_23 + 1);
                *(type_23 *)((int)var_23 + 0x4c) = *(type_23 *)((int)var_23 + 0xc);
              }
              else {
                *(type_12 **)(var_23 + 7) = puVar10;
                *(type_12 *)(var_23 + 8) = *(type_12 *)var_23;
              }
              var_3 = *(type_23 *)((int)var_23 + -4);
              uVar9 = *(type_12 *)((int)var_23 + 0x14);
              ((type_17 *)(var_23 + -1))->shndx_ = (type_23)var_23;
              *(type_23 *)((int)var_23 + -4) = 0;
              *(type_23 *)((int)var_23 + 0x3c) = var_3;
              *(type_12 *)((int)var_23 + 0x54) = uVar9;
              *(type_12 *)(var_23 + 10) = *(type_12 *)(var_23 + 2);
              *(type_25 *)var_23 = 0;
              *(type_12 *)(var_23 + 0xb) = *(type_12 *)(var_23 + 3);
              *(type_12 *)((int)var_23 + 0x5c) = *(type_12 *)((int)var_23 + 0x1c);
              var_23 = var_52;
            } while (var_52 != (type_7 *)(var_53 + (int)var_49));
            local_bc = (type_17 *)(((var_51 - 0x80U >> 6) + 1) * 0x40 + (int)var_49);
            var_23 = (type_7 *)(var_53 + (int)var_49);
          }
          *var_38 = local_bc->shndx_;
          var_38[1] = local_bc->p2align_;
          var_38[2] = *(type_23 *)&local_bc->u1_;
          var_38[3] = *(type_23 *)((int)&local_bc->u1_ + 4);
          *(type_19 *)(var_38 + 4) = local_bc->u2_;
          var_38[5] = local_bc->section_order_index_;
          var_54 = (type_7 *)var_38[6];
          local_10c = (type_23 *)local_bc[1].shndx_;
          if (var_23 == (type_7 *)local_10c) {
            var_3 = local_bc[1].p2align_;
            if (var_3 != 0) {
              if (var_3 == 1) {
                *(type_25 *)var_54 = *(type_25 *)&local_bc[1].u1_;
                var_54 = (type_7 *)var_38[6];
                var_3 = local_bc[1].p2align_;
              }
              else {
                var_50 = var_38;
                var_56[-2] = var_3;
                var_56[-3] = (type_23)var_23;
                var_56[-4] = (type_23)var_54;
                var_56[-5] = 0x16134b;
                var_24((void *)var_56[-4],(void *)var_56[-3],var_56[-2]);
                var_3 = local_bc[1].p2align_;
                var_54 = (type_7 *)var_50[6];
                var_38 = var_50;
              }
            }
            var_38[7] = var_3;
            *(type_25 *)((int)var_54 + var_3) = 0;
            var_54 = (type_7 *)local_bc[1].shndx_;
          }
          else {
            if ((type_7 *)var_50 == var_54) {
              var_38[6] = (type_23)local_10c;
              var_38[7] = local_bc[1].p2align_;
              var_38[8] = *(type_23 *)&local_bc[1].u1_;
            }
            else {
              var_50 = (type_23 *)var_38[8];
              var_38[6] = (type_23)local_10c;
              var_38[7] = local_bc[1].p2align_;
              var_38[8] = *(type_23 *)&local_bc[1].u1_;
              if (var_54 != (type_7 *)0x0) {
                local_bc[1].shndx_ = (type_23)var_54;
                *(type_23 **)&local_bc[1].u1_ = var_50;
                goto LAB_001611b8;
              }
            }
            var_54 = var_23;
            local_bc[1].shndx_ = (type_23)var_23;
          }
LAB_001611b8:
          local_bc[1].p2align_ = 0;
          *(type_25 *)var_54 = 0;
          var_3 = local_bc[2].p2align_;
          var_38[0xc] = local_bc[2].shndx_;
          var_38[0xd] = var_3;
          var_3 = *(type_23 *)&local_bc[2].u1_;
          var_38[0xf] = *(type_23 *)((int)&local_bc[2].u1_ + 4);
          var_38[0xe] = var_3;
          var_56[-3] = local_f8;
          var_56[-4] = local_fc;
          var_56[-5] = var_36;
          var_56[-6] = (type_23)var_49;
          var_56[-7] = (type_23)(type_10)local_d4;
          var_56[-8] = (type_23)var_38;
                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */
          var_56[-9] = 0x161203;
          std::
          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<var_72::type_26*,var_73::vector<var_72::type_26>var_2>,_gold::type_26*,_int,___gnu_cxx::__ops::_Iter_comp_iter<var_72::var_55>var_2>
                    ((type_26 *)var_56[-8],(type_26 *)var_56[-7],
                     (type_26 *)var_56[-6],var_56[-5],
                     (_Iter_comp_iter<var_72::var_55>var_11)
                     *(var_55 *)(var_56 + -4));
          goto LAB_00160b99;
        }
        if (0 < var_36) {
          var_36 = var_36 >> 6;
          goto LAB_001609ce;
        }
        local_100 = var_12[2];
LAB_00160b72:
        local_b4 = var_43;
        var_56[-1] = local_f8;
        var_56[-2] = local_fc;
        var_56[-3] = (type_23)(type_10)local_d4;
        var_56[-4] = (type_23)var_38;
                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */
        var_56[-5] = 0x160b8a;
        std::
        __inplace_stable_sort<__gnu_cxx::__normal_iterator<var_72::type_26*,var_73::vector<var_72::type_26>var_2>,___gnu_cxx::__ops::_Iter_comp_iter<var_72::var_55>var_2>
                  ((type_26 *)var_56[-4],(type_26 *)var_56[-3],
                   (_Iter_comp_iter<var_72::var_55>var_11)
                   *(var_55 *)(var_56 + -2));
        local_b4._0_4_ = (type_18 *)0x0;
        var_49 = (type_17 *)0x0;
LAB_00160b99:
        var_57 = var_49;
        if ((type_18 *)local_b4 != (type_18 *)var_49) {
          do {
            if ((type_7 *)var_57[1].shndx_ != &var_57[1].u1_) {
              var_56[-4] = (type_23)var_57[1].shndx_;
              var_56[-5] = 0x160bc1;
              var_25((void *)var_56[-4]);
            }
            pIVar16 = var_57 + 2;
            var_57 = (type_17 *)&pIVar16->u2_;
          } while ((type_18 *)local_b4 != (type_18 *)&pIVar16->u2_);
        }
        var_56[-3] = local_100;
        var_56[-4] = (type_23)var_49;
        var_56[-5] = 0x160be4;
        var_25((void *)var_56[-4],(type_31 *)var_56[-3]);
        var_43 = var_14(local_b4._4_4_,(type_18 *)local_b4);
        var_38 = (type_23 *)var_26[-1];
        if (var_38 == (type_23 *)*var_26) goto LAB_00160c00;
      }
      local_b4._0_4_ = (type_18 *)var_38;
      do {
        var_59.shndx_ = *(type_23 *)(type_18 *)local_b4;
        var_59.p2align_ = *(type_23 *)((int)(type_18 *)local_b4 + 4);
        var_59.u1_.var_60._0_4_ = *(type_23 *)((int)(type_18 *)local_b4 + 8);
        var_59.u1_.var_60._4_4_ = *(type_23 *)((int)(type_18 *)local_b4 + 0xc);
        var_59.u2_ = *(type_19 *)((int)(type_18 *)local_b4 + 0x10);
        var_59.section_order_index_ = *(type_23 *)((int)(type_18 *)local_b4 + 0x14);
        if (var_59.p2align_ == 0) {
          if (0xfffffffb < *(type_23 *)(type_18 *)local_b4) {
            var_58 = (type_13 **)((var_59.u2_.object)->super_Object)._vptr_Object[3];
            if (var_58 != var_30 + -0xc6e88) {
              var_56[-4] = (type_23)var_59.u2_;
              var_56[-5] = 0x161066;
              var_43 = (*(type_30 *)var_58)();
              goto LAB_00160fa4;
            }
            var_43 = *(type_15 *)((int)&(((type_18 *)var_59.u2_.poris)->super_Object).offset_ + 4);
            goto LAB_00160dde;
          }
          var_56[-4] = (type_23)&var_59;
          local_bc = &var_59;
                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */
          var_56[-5] = 0x160fd8;
          local_d4 = type_4::Input_section::var_60((type_17 *)var_56[-4]);
          var_64 = var_42;
          if (var_42 != 0) goto LAB_00160ffd;
LAB_00160d10:
          var_67 = var_33;
          var_66 = var_65;
        }
        else {
          var_3 = var_59.p2align_ - 1 >> 5 & 1;
          var_61 = (type_22)(var_59.p2align_ - 1);
          var_43 = var_14(var_3 << (var_61 & 0x1f),(var_3 ^ 1) << (var_61 & 0x1f));
LAB_00160fa4:
          if (0xfffffffb < var_59.shndx_) {
LAB_00160dde:
            aVar18 = var_59.u2_;
            if (((type_23)((var_59.u2_.object)->super_Object).input_file_ & 2) == 0) {
              pp_Var5 = ((var_59.u2_.object)->super_Object)._vptr_Object;
              *(type_19 *)(var_56 + -4) = var_59.u2_;
              p_Var6 = pp_Var5[0xe];
              var_56[-5] = 0x160ded;
              (*p_Var6)();
              var_58 = var_30;
              if (((type_23)((aVar18.object)->super_Object).input_file_ & 2) == 0) {
                var_56[-2] = (type_23)(var_30 + -0x3dd6a);
                var_56[-3] = 0x163;
                var_56[-4] = (type_23)(var_58 + -0x41c55);
                    /* WARNING: Subroutine does not return */
                var_56[-5] = 0x1614f8;
                var_47((char *)var_56[-4],var_56[-3],(char *)var_56[-2]);
              }
            }
          }
          var_56[-4] = (type_23)&var_59;
          local_bc = &var_59;
          var_56[-5] = 0x160e12;
          local_d4 = type_4::Input_section::var_60((type_17 *)var_56[-4]);
          var_64 = var_42;
          if (var_42 == 0) {
            var_64 = var_43;
            if (var_43 == 0) goto LAB_00160d10;
          }
          else {
LAB_00160ffd:
            var_58 = var_30;
            var_42 = var_64;
            if (var_62 != 0) {
              var_56[-2] = (type_23)(var_30 + -0x3dd6e);
              var_56[-3] = 0xedf;
              var_56[-4] = (type_23)(var_58 + -0x41c55);
                    /* WARNING: Subroutine does not return */
              var_56[-5] = 0x1614d7;
              var_47((char *)var_56[-4],var_56[-3],(char *)var_56[-2]);
            }
            *(type_15 *)(var_56 + -4) = var_64;
            var_56[-5] = 0x161027;
            var_59.p2align_ = var_63();
          }
          var_58 = var_30;
          lVar15 = var_64 + var_14((var_65 - 1) + (type_23)(var_33 != 0),var_33 - 1);
          var_67 = (type_23)lVar15 & -(int)var_64;
          var_66 = (type_23)((type_15)lVar15 >> 0x20) &
                     -((int)(var_64 >> 0x20) + (type_23)((int)var_64 != 0));
          if ((var_65 < var_66 || var_65 - var_66 < (type_23)(var_33 < var_67)) &&
             (fill->_M_string_length != 0)) {
            if (var_66 - var_65 != (type_23)(var_67 < var_33)) {
              var_56[-2] = (type_23)(var_30 + -0x3dd18);
              var_56[-3] = 0xc0;
              var_56[-4] = (int)var_58 + -0x107be7;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */
              var_56[-5] = 0x1614b6;
              var_47((char *)var_56[-4],var_56[-3],(char *)var_56[-2]);
            }
            var_56[-1] = var_67 - var_33;
            var_56[-2] = (type_23)fill;
            var_56[-3] = (type_23)this;
            var_56[-4] = (type_23)&var_68;
            var_56[-5] = 0x160ec0;
            Output_section_element::var_69
                      ((type_5 *)var_56[-4],(type_32 *)var_56[-3],
                       (type_5 *)var_56[-2],var_56[-1]);
            var_56[-4] = 0x44;
                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */
            var_56[-5] = 0x160ecf;
            var_70 = (type_21 *)var_7(var_56[-4]);
            var_8 = var_68.input_section_.p2align_;
            var_3 = var_68.input_section_.shndx_;
            *(type_12 *)&(var_70->super_Output_data).address_ = 0;
            *(type_12 *)((int)&(var_70->super_Output_data).address_ + 4) = 0;
            *(type_23 *)&(var_70->super_Output_data).data_size_ = var_68.input_section_.p2align_;
            var_70->output_section_ = (type_4 *)0x0;
            *(type_12 *)&var_70->addralign_ = 0;
            *(type_12 *)((int)&var_70->addralign_ + 4) = 0;
            *(type_12 *)((int)&(var_70->super_Output_data).data_size_ + 4) = 0;
            *(type_12 *)&(var_70->super_Output_data).offset_ = 0xffffffff;
            *(type_12 *)((int)&(var_70->super_Output_data).offset_ + 4) = 0xffffffff;
            (var_70->super_Output_data).field_0x1c =
                 (var_70->super_Output_data).field_0x1c & 0xe0 | 10;
            (var_70->super_Output_data)._vptr_Output_data =
                 (type_9 **)((int)local_dc + 8);
            var_70[1].super_Output_data._vptr_Output_data =
                 (type_9 **)((int)&var_70[1].super_Output_data.address_ + 4);
            var_56[-1] = 0;
            var_56[-2] = var_8 + var_3;
            var_56[-3] = var_3;
            var_56[-4] = (type_23)(var_70 + 1);
                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */
            var_56[-5] = 0x160f42;
            std::__cxx11::basic_string<var_21,var_73::char_traits<var_21>,var_73::allocator<var_21>var_2>::
            var_20<var_21*>();
            var_56[-3] = (type_23)var_70;
            var_56[-4] = (type_23)var_45;
                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */
            var_56[-5] = 0x160f4d;
            Output_section::var_71
                      ((type_4 *)var_56[-4],(type_21 *)var_56[-3]);
            var_28._0_4_ = var_70;
            if (layout->record_output_section_data_from_script_ != false) {
              var_74 = (layout->script_output_section_data_list_).
                         super__Vector_base<var_72::type_21*,var_73::allocator<var_72::type_21*>var_2>
                         ._M_impl._M_finish;
              if (var_74 ==
                  (layout->script_output_section_data_list_).
                  super__Vector_base<var_72::type_21*,var_73::allocator<var_72::type_21*>var_2>
                  ._M_impl._M_end_of_storage) {
                var_56[-2] = (type_23)var_28;
                var_56[-3] = (type_23)var_74;
                var_56[-4] = (type_23)&layout->script_output_section_data_list_;
                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */
                var_56[-5] = 0x161091;
                std::vector<var_72::type_21*,var_73::allocator<var_72::type_21*>var_2>
                ::_M_realloc_insert<var_72::type_21*var_75&>
                          ((vector<var_72::type_21*,var_73::allocator<var_72::type_21*>var_2>
                            *)var_56[-4],(type_21 **)var_56[-3],
                           (type_21 **)var_56[-2]);
              }
              else {
                *var_74 = var_70;
                (layout->script_output_section_data_list_).
                super__Vector_base<var_72::type_21*,var_73::allocator<var_72::type_21*>var_2>
                ._M_impl._M_finish = var_74 + 1;
              }
            }
            if ((type_7 *)var_68.input_section_.shndx_ !=
                &var_68.input_section_.u1_) {
              var_56[-4] = var_68.input_section_.shndx_;
              var_56[-5] = 0x160f83;
              var_25((void *)var_56[-4]);
            }
          }
        }
        var_56[-3] = (type_23)local_bc;
        var_56[-4] = (type_23)var_45;
                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */
        var_56[-5] = 0x160d3f;
        Output_section::var_76
                  ((type_4 *)var_56[-4],(type_17 *)var_56[-3]);
        var_33 = (int)(type_10)local_d4 + var_67;
        local_b4._0_4_ = (type_18 *)((int)(type_18 *)local_b4 + 0x40);
        var_43 = var_14(local_b4._4_4_,(type_18 *)local_b4);
        var_65 = local_d4._4_4_ + var_66 + (type_23)var_77((type_23)(type_10)local_d4,var_67);
      } while ((type_18 *)*var_26 != (type_18 *)local_b4);
    }
LAB_00160c00:
    var_78 = var_78 + 1;
    var_26 = var_26 + 3;
    if (var_78 == var_37) {
      if (((var_45 == (type_4 *)0x0) || ((var_45->flags_ & 0x400) == 0)) ||
         (var_45->type_ != 8)) {
        *(type_23 *)var_41 = var_33;
        *(type_23 *)((int)var_41 + 4) = var_65;
      }
      else {
        var_65 = *(type_23 *)((int)var_41 + 4);
        var_33 = (type_23)*var_41;
      }
      *(type_23 *)&this->final_dot_value_ = var_33;
      *(type_23 *)((int)&this->final_dot_value_ + 4) = var_65;
      this->final_dot_section_ = *dot_section;
      var_9 = var_10;
      if (var_79 != var_10) {
        do {
          local_b4._4_4_ = (type_12)(var_43 >> 0x20);
          var_36 = var_9[1];
          var_51 = *var_9;
          if (var_36 != var_51) {
            local_b4._0_4_ = (type_18 *)var_51;
            do {
              if (*(int *)((int)(type_18 *)local_b4 + 0x18) != (int)(type_18 *)local_b4 + 0x20) {
                var_56[-4] = *(int *)((int)(type_18 *)local_b4 + 0x18);
                var_56[-5] = 0x160caf;
                var_25((void *)var_56[-4]);
              }
              local_b4._0_4_ = (type_18 *)((int)(type_18 *)local_b4 + 0x40);
              var_43 = var_14(local_b4._4_4_,(type_18 *)local_b4);
            } while ((type_18 *)var_36 != (type_18 *)local_b4);
            var_51 = *var_9;
          }
          if (var_51 != 0) {
            local_b4 = var_43;
            var_56[-4] = var_51;
            var_56[-5] = 0x160cd8;
            var_25((void *)var_56[-4]);
            var_43 = local_b4;
          }
          var_9 = var_9 + 3;
        } while (var_9 != var_79);
      }
      local_b4 = var_43;
      var_56[-4] = (type_23)var_10;
      var_56[-5] = 0x160cfa;
      var_25((void *)var_56[-4]);
      return;
    }
  } while( true );
  var_36 = var_36 >> 1;
  if (var_36 == 0) goto LAB_00160b72;
  goto LAB_001609e8;
}


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

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

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

{
  int ****ppppiVar1;
  int ****ppppiVar2;
  code *pcVar3;
  int ***pppiVar4;
  undefined **ppuVar5;
  int **ppiVar6;
  int *piVar7;
  bool bVar8;
  longlong lVar9;
  longlong lVar10;
  uint **ppuVar11;
  char cVar12;
  int iVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  undefined4 *puVar16;
  int ****ppppiVar17;
  int ***pppiVar18;
  int ****ppppiVar19;
  byte bVar20;
  int iVar21;
  uint ***pppuVar22;
  uint uVar23;
  int ****ppppiVar24;
  uint uVar25;
  undefined4 *puVar26;
  int *piVar27;
  undefined1 *puVar28;
  int iVar29;
  longlong lVar30;
  longlong lVar31;
  int local_11c;
  int local_118;
  undefined4 *local_114;
  undefined4 *local_110;
  uint ***local_10c;
  uint ***local_108;
  uint ***local_104;
  int local_100;
  int local_fc;
  int local_f8;
  uint local_f4;
  uint local_f0;
  uint **local_ec;
  uint **local_e8;
  uint local_e4;
  uint local_e0;
  int ***local_dc;
  undefined4 *local_d8;
  undefined8 local_d4;
  undefined8 local_cc;
  undefined8 local_c4;
  uint ***local_bc;
  undefined **local_b8;
  uint ***local_b4;
  uint local_b0;
  uint **local_a4;
  int local_a0;
  uint *local_9c [4];
  undefined1 *local_8c [2];
  undefined1 local_84 [16];
  int ***local_74;
  uint **local_70;
  uint **local_6c;
  uint **local_68;
  uint **local_64;
  uint **local_60;
  undefined4 *local_5c;
  uint *local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  int ***local_44;
  uint **local_40;
  uint **local_3c [4];
  undefined8 local_2c;
  undefined8 local_24;
  
  local_b8 = &__DT_PLTGOT;
  local_e4 = param_5;
  local_b4 = *(uint ****)(param_1 + 0x34);
  local_e0 = param_6;
  iVar13 = *(int *)(param_1 + 0x30);
  uVar25 = (int)local_b4 - iVar13 >> 5;
  local_cc._0_4_ = uVar25;
  if (uVar25 != 0) {
    iVar21 = ((int)local_b4 - iVar13) + iVar13;
    bVar8 = false;
    do {
      if (*(int *)(iVar13 + 0x1c) != 0) {
        bVar8 = true;
      }
      iVar13 = iVar13 + 0x20;
    } while (iVar21 != iVar13);
    if (bVar8) {
      local_114 = (undefined4 *)FUN_001e5200(uVar25 * 0xc);
      puVar14 = local_114;
      uVar23 = uVar25;
      do {
        *puVar14 = 0;
        puVar14[1] = 0;
        puVar14[2] = 0;
        uVar23 = uVar23 - 1;
        puVar14 = puVar14 + 3;
      } while (uVar23 != 0);
      local_110 = local_114 + uVar25 * 3;
      puVar14 = (undefined4 *)*param_11;
      local_f4 = (uint)local_cc;
      goto joined_r0x001608d0;
    }
  }
  local_114 = (undefined4 *)FUN_001e5200(0xc);
  local_f4 = 1;
  *local_114 = 0;
  local_114[1] = 0;
  local_114[2] = 0;
  local_110 = local_114 + 3;
  puVar14 = (undefined4 *)*param_11;
joined_r0x001608d0:
  piVar27 = &local_11c;
  if (puVar14 != param_11) {
    piVar27 = &local_11c;
    local_d4._0_4_ = (int ****)local_3c;
    local_bc = &local_a4;
    do {
      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;
                    /* try { // try from 0016056d to 00160585 has its CatchHandler @ 00161527 */
      *(undefined4 *)((int)piVar27 + -0x14) = 0x160572;
      local_b4 = (uint ***)FUN_000ede60();
      *(undefined4 **)((int)piVar27 + -0x10) = puVar14 + 2;
      *(undefined4 *)((int)piVar27 + -0x14) = 0x160586;
      uVar15 = FUN_000edef0();
      local_5c = (undefined4 *)puVar14[2];
      local_58 = (uint *)puVar14[3];
      local_54 = puVar14[4];
      local_50 = puVar14[5];
      local_4c = puVar14[6];
      local_48 = puVar14[7];
      local_3c[0] = (uint **)((uint)local_3c[0] & 0xffffff00);
      local_44 = (int ***)(int ****)local_d4;
      iVar13 = (int)local_b4[7];
      local_40 = (uint **)0x0;
      local_2c._0_4_ = 0;
      local_2c._4_4_ = 0;
      local_24._0_4_ = 1;
      local_24._4_4_ = 0;
      if (iVar13 != 0) {
        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;
        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;
                    /* try { // try from 001605fb to 001605ff has its CatchHandler @ 00161520 */
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160600;
        FUN_000669a0();
      }
      iVar13 = (int)*local_b4;
      *(undefined4 *)((int)piVar27 + -8) = uVar15;
      *(uint ****)((int)piVar27 + -0xc) = local_b4;
      *(uint ****)((int)piVar27 + -0x10) = local_bc;
                    /* try { // try from 00160616 to 00160618 has its CatchHandler @ 00161543 */
      pcVar3 = *(code **)(iVar13 + 0x40);
      *(undefined4 *)((int)piVar27 + -0x14) = 0x160619;
      (*pcVar3)();
      *(uint ***)((int)piVar27 + -0x14) = local_a4;
                    /* try { // try from 00160625 to 00160661 has its CatchHandler @ 0016152e */
      *(undefined4 *)((int)piVar27 + -0x18) = 0x16062a;
      cVar12 = FUN_00096ec0();
      if (cVar12 == '\0') {
        *(uint ****)((int)piVar27 + -0x10) = local_bc;
        *(int *****)((int)piVar27 + -0x14) = &local_44;
                    /* try { // try from 001610f3 to 001610f7 has its CatchHandler @ 0016152e */
        *(undefined4 *)((int)piVar27 + -0x18) = 0x1610f8;
        FUN_001ee9c0();
        puVar28 = (undefined1 *)((int)piVar27 + -4);
      }
      else {
        local_d8 = (undefined4 *)local_84;
        *(undefined4 *)((int)piVar27 + -8) = 0;
        *(int *)((int)piVar27 + -0xc) = local_a0 + (int)local_a4;
        *(uint ***)((int)piVar27 + -0x10) = local_a4;
        *(undefined1 ***)((int)piVar27 + -0x14) = local_8c;
        *(undefined4 *)((int)piVar27 + -0x18) = 0x160662;
        local_8c[0] = (undefined1 *)local_d8;
        FUN_000513a0();
        *(undefined1 ***)((int)piVar27 + -0x10) = local_8c;
        *(int *****)((int)piVar27 + -0x14) = &local_74;
                    /* try { // try from 0016066f to 00160673 has its CatchHandler @ 0016153c */
        *(undefined4 *)((int)piVar27 + -0x18) = 0x160674;
        FUN_0009e270();
        ppuVar11 = local_3c[0];
        pppiVar18 = local_44;
        local_dc = local_74;
        pppuVar22 = &local_6c;
        if ((uint ***)local_74 == &local_6c) {
          if ((int ***)local_70 != (int ***)0x0) {
            if ((int ***)local_70 == (int ***)0x1) {
              *(undefined1 *)local_44 = local_6c._0_1_;
              local_40 = local_70;
              *(undefined1 *)((int)local_44 + 1) = 0;
              goto LAB_001606d8;
            }
            local_dc = (int ***)&local_6c;
            *(uint ***)((int)piVar27 + -0x10) = local_70;
            *(uint ****)((int)piVar27 + -0x14) = &local_6c;
            *(int ****)((int)piVar27 + -0x18) = local_44;
            *(undefined4 *)((int)piVar27 + -0x1c) = 0x161301;
            memcpy(*(void **)((int)piVar27 + -0x18),*(void **)((int)piVar27 + -0x14),
                   *(size_t *)((int)piVar27 + -0x10));
            pppuVar22 = (uint ***)local_dc;
          }
          *(undefined1 *)((int)local_44 + (int)local_70) = 0;
          local_40 = local_70;
        }
        else {
          local_e8 = local_6c;
          if ((int ****)local_44 != (int ****)local_d4) {
            local_40 = local_70;
            local_ec = local_3c[0];
            local_3c[0] = local_6c;
            local_44 = local_74;
            if ((uint ***)pppiVar18 != (uint ***)0x0) {
              local_74 = pppiVar18;
              local_6c = ppuVar11;
              goto LAB_001606d8;
            }
          }
          local_3c[0] = local_6c;
          local_40 = local_70;
          local_44 = local_74;
          pppuVar22 = &local_6c;
          local_74 = (int ***)&local_6c;
        }
LAB_001606d8:
        local_70 = (uint **)0x0;
        *(undefined1 *)local_74 = 0;
        if ((uint ***)local_74 != pppuVar22) {
          *(int ****)((int)piVar27 + -0x18) = local_74;
          *(undefined4 *)((int)piVar27 + -0x1c) = 0x1606f8;
          FUN_001e6db0();
        }
        puVar28 = (undefined1 *)((int)piVar27 + -8);
        if ((undefined4 *)local_8c[0] != local_d8) {
          *(undefined1 **)((int)piVar27 + -0x18) = local_8c[0];
          *(undefined4 *)((int)piVar27 + -0x1c) = 0x160718;
          FUN_001e6db0();
          puVar28 = (undefined1 *)((int)piVar27 + -8);
        }
      }
      piVar27 = (int *)puVar28;
      if (local_a4 != local_9c) {
        *(uint ***)((int)piVar27 + -0x10) = local_a4;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x16073a;
        FUN_001e6db0();
      }
      pppuVar22 = local_b4;
      if (puVar14[2] == -4) {
        piVar7 = (int *)puVar14[6];
        local_2c._0_4_ = piVar7[3];
        local_2c._4_4_ = piVar7[4];
        ppuVar5 = *(undefined ***)(*piVar7 + 0xc);
        if (ppuVar5 == local_b8 + -0xc6e88) {
          local_24 = *(undefined8 *)(piVar7 + 9);
          local_2c = *(undefined8 *)(piVar7 + 3);
        }
        else {
          *(int **)((int)piVar27 + -0x10) = piVar7;
                    /* try { // try from 0016140a to 0016140b has its CatchHandler @ 00161543 */
          *(undefined4 *)((int)piVar27 + -0x14) = 0x16140c;
          local_24 = (*(code *)ppuVar5)();
        }
      }
      else {
        iVar13 = (int)*local_b4;
        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;
        *(uint ****)((int)piVar27 + -0x10) = local_b4;
                    /* try { // try from 00160754 to 00160766 has its CatchHandler @ 00161543 */
        pcVar3 = *(code **)(iVar13 + 0x3c);
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160757;
        local_2c = (*pcVar3)();
        iVar13 = (int)*pppuVar22;
        *(undefined4 *)((int)piVar27 + -0xc) = uVar15;
        *(uint ****)((int)piVar27 + -0x10) = pppuVar22;
        pcVar3 = *(code **)(iVar13 + 0x5c);
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160767;
        local_24 = (*pcVar3)();
      }
      iVar13 = (int)local_b4[7];
      if (iVar13 != 0) {
        *(undefined4 *)((int)piVar27 + -0xc) = 0xffffffff;
        *(int *)((int)piVar27 + -0x10) = iVar13 + 0x1c;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160791;
        FUN_000679d0();
      }
      *(uint ***)((int)piVar27 + -0xc) = local_b4[1];
      *(int *)((int)piVar27 + -0x10) = param_1;
                    /* try { // try from 001607a3 to 00160880 has its CatchHandler @ 00161520 */
      *(undefined4 *)((int)piVar27 + -0x14) = 0x1607a8;
      cVar12 = FUN_0015b690();
      if (cVar12 == '\0') {
LAB_001610b0:
        puVar16 = (undefined4 *)*puVar14;
      }
      else {
        iVar13 = *(int *)(param_1 + 0x30);
        if (*(int *)(param_1 + 0x34) != iVar13) {
          if ((uint)local_cc != 0) {
            uVar25 = 0;
            while( true ) {
              puVar16 = (undefined4 *)(iVar13 + uVar25 * 0x20);
              uVar15 = *puVar16;
              if (*(char *)(puVar16 + 6) == '\0') {
                *(undefined4 *)((int)piVar27 + -0xc) = uVar15;
                *(int ****)((int)piVar27 + -0x10) = local_44;
                *(undefined4 *)((int)piVar27 + -0x14) = 0x1607f0;
                iVar13 = strcmp(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc));
              }
              else {
                *(undefined4 *)((int)piVar27 + -8) = 0;
                *(int ****)((int)piVar27 + -0xc) = local_44;
                *(undefined4 *)((int)piVar27 + -0x10) = uVar15;
                *(undefined4 *)((int)piVar27 + -0x14) = 0x160835;
                iVar13 = fnmatch(*(char **)((int)piVar27 + -0x10),*(char **)((int)piVar27 + -0xc),
                                 *(int *)((int)piVar27 + -8));
              }
              if (iVar13 == 0) break;
              uVar25 = uVar25 + 1;
              if (uVar25 == (uint)local_cc) goto LAB_001610b0;
              iVar13 = *(int *)(param_1 + 0x30);
            }
            if (uVar25 < (uint)local_cc) {
              puVar16 = local_114;
              if (uVar25 < local_f4) {
                puVar16 = local_114 + uVar25 * 3;
              }
              puVar26 = (undefined4 *)puVar16[1];
              if (puVar26 != (undefined4 *)puVar16[2]) goto LAB_00161250;
              *(undefined4 ***)((int)piVar27 + -8) = &local_5c;
              *(undefined4 **)((int)piVar27 + -0xc) = puVar26;
              *(undefined4 **)((int)piVar27 + -0x10) = puVar16;
              *(undefined4 *)((int)piVar27 + -0x14) = 0x160881;
              FUN_00163d60();
              goto LAB_001612ad;
            }
          }
          goto LAB_001610b0;
        }
        puVar26 = (undefined4 *)local_114[1];
        puVar16 = local_114;
        if (puVar26 == (undefined4 *)local_114[2]) {
          *(undefined4 ***)((int)piVar27 + -8) = &local_5c;
          *(undefined4 **)((int)piVar27 + -0xc) = puVar26;
          *(undefined4 **)((int)piVar27 + -0x10) = local_114;
                    /* try { // try from 00161480 to 00161484 has its CatchHandler @ 00161520 */
          *(undefined4 *)((int)piVar27 + -0x14) = 0x161485;
          FUN_00163d60();
        }
        else {
LAB_00161250:
          *puVar26 = local_5c;
          puVar26[1] = local_58;
          puVar26[2] = local_54;
          puVar26[3] = local_50;
          puVar26[4] = local_4c;
          puVar26[5] = local_48;
          puVar26[6] = puVar26 + 8;
          *(undefined4 *)((int)piVar27 + -4) = 0;
          *(undefined1 **)((int)piVar27 + -8) = (undefined1 *)((int)local_40 + (int)local_44);
          *(int ****)((int)piVar27 + -0xc) = local_44;
          *(undefined4 **)((int)piVar27 + -0x10) = puVar26 + 6;
                    /* try { // try from 00161289 to 0016128d has its CatchHandler @ 00161520 */
          *(undefined4 *)((int)piVar27 + -0x14) = 0x16128e;
          FUN_000513a0();
          *(undefined8 *)(puVar26 + 0xc) = local_2c;
          *(undefined8 *)(puVar26 + 0xe) = local_24;
          puVar16[1] = puVar16[1] + 0x40;
        }
LAB_001612ad:
        puVar16 = (undefined4 *)*puVar14;
        param_11[2] = param_11[2] + -1;
        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612c5;
        FUN_001e9f90();
        *(undefined4 **)((int)piVar27 + -0x10) = puVar14;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x1612d5;
        FUN_001e6db0();
      }
      if ((int ****)local_44 != (int ****)local_d4) {
        *(int ****)((int)piVar27 + -0x10) = local_44;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x1610cc;
        FUN_001e6db0();
      }
      puVar14 = puVar16;
    } while (puVar16 != param_11);
  }
  local_ec = (uint **)0x0;
  local_cc = *param_7;
  local_d8 = local_114 + 1;
  local_dc = (int ***)(local_b8 + -0x2d01);
  local_b4 = (uint ***)(local_e4 - 1);
  local_b0 = (local_e0 - 1) + (uint)(local_e4 != 0);
  local_f0 = local_b0 & local_e0 | (uint)local_b4 & local_e4;
  local_11c = (int)local_b8 + -0xeb73d;
  local_e8 = (uint **)local_11c;
  do {
    ppuVar5 = local_b8;
    local_d4._0_4_ = (int ****)*local_d8;
    lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);
    ppppiVar24 = (int ****)local_d8[-1];
    if ((int ****)local_d4 != ppppiVar24) {
      if (param_4 == 0) {
        *(undefined ***)((int)piVar27 + -8) = local_b8 + -0x3dd65;
        *(undefined4 *)((int)piVar27 + -0xc) = 0x6ed;
        *(int *)((int)piVar27 + -0x10) = (int)ppuVar5 + -0xf7f6d;
                    /* WARNING: Subroutine does not return */
        *(undefined1 **)((int)piVar27 + -0x14) = &LAB_00161519;
        FUN_00069d00();
      }
      iVar13 = *(int *)(param_1 + 0x20);
      iVar21 = *(int *)((int)local_ec * 0x20 + *(int *)(param_1 + 0x30) + 0x1c);
      puVar28 = (undefined1 *)piVar27;
      if (iVar21 != 0 || iVar13 != 0) {
        iVar29 = (int)(int ****)local_d4 - (int)ppppiVar24;
        local_fc = iVar13;
        local_f8 = iVar21;
        if (0x7fffffc0 < iVar29) {
          iVar29 = 0x1ffffff;
LAB_001609ce:
          local_100 = (int)local_e8;
LAB_001609e8:
          *(uint ***)((int)piVar27 + -0xc) = local_e8;
          *(int *****)((int)piVar27 + -0x10) = (int ****)(iVar29 << 6);
          local_b4 = (uint ***)(iVar29 << 6);
          *(undefined4 *)((int)piVar27 + -0x14) = 0x160a08;
          ppppiVar17 = (int ****)FUN_001e51a0();
          pppuVar22 = local_b4;
          if (ppppiVar17 == (int ****)0x0) break;
          local_108 = (uint ***)(ppppiVar24 + 8);
          local_b4 = (uint ***)((int)ppppiVar17 + (int)local_b4);
          *ppppiVar17 = *ppppiVar24;
          ppppiVar17[1] = ppppiVar24[1];
          ppppiVar17[2] = ppppiVar24[2];
          ppppiVar17[3] = ppppiVar24[3];
          ppppiVar17[4] = ppppiVar24[4];
          ppppiVar17[5] = ppppiVar24[5];
          ppppiVar19 = ppppiVar17 + 8;
          ppppiVar17[6] = (int ***)ppppiVar19;
          if ((uint ***)ppppiVar24[6] == local_108) {
            ppppiVar17[8] = ppppiVar24[8];
            ppppiVar17[9] = ppppiVar24[9];
            ppppiVar17[10] = ppppiVar24[10];
            ppppiVar17[0xb] = ppppiVar24[0xb];
          }
          else {
            ppppiVar17[6] = ppppiVar24[6];
            ppppiVar17[8] = ppppiVar24[8];
          }
          pppiVar18 = ppppiVar24[0xd];
          ppppiVar17[7] = ppppiVar24[7];
          ppppiVar24[7] = (int ***)0x0;
          ppppiVar24[6] = (int ***)local_108;
          pppiVar4 = ppppiVar24[0xc];
          *(undefined1 *)(ppppiVar24 + 8) = 0;
          ppppiVar17[0xd] = pppiVar18;
          pppiVar18 = ppppiVar24[0xf];
          ppppiVar17[0xc] = pppiVar4;
          pppiVar4 = ppppiVar24[0xe];
          ppppiVar17[0xf] = pppiVar18;
          ppppiVar17[0xe] = pppiVar4;
          if ((int ****)local_b4 == ppppiVar17 + 0x10) {
            local_bc = (uint ***)ppppiVar17;
          }
          else {
            local_118 = iVar29;
            ppppiVar1 = (int ****)(pppuVar22 + -8);
            do {
              ppppiVar19[8] = ppppiVar19[-8];
              ppppiVar19[9] = ppppiVar19[-7];
              ppppiVar19[10] = ppppiVar19[-6];
              ppppiVar19[0xb] = ppppiVar19[-5];
              ppppiVar19[0xc] = ppppiVar19[-4];
              ppppiVar19[0xd] = ppppiVar19[-3];
              ppppiVar2 = ppppiVar19 + 0x10;
              ppppiVar19[0xe] = (int ***)ppppiVar2;
              if (ppppiVar19 == (int ****)ppppiVar19[-2]) {
                ppppiVar19[0x10] = *ppppiVar19;
                ppppiVar19[0x11] = ppppiVar19[1];
                ppppiVar19[0x12] = ppppiVar19[2];
                ppppiVar19[0x13] = ppppiVar19[3];
              }
              else {
                ppppiVar19[0xe] = ppppiVar19[-2];
                ppppiVar19[0x10] = *ppppiVar19;
              }
              pppiVar18 = ppppiVar19[-1];
              ppppiVar19[-2] = (int ***)ppppiVar19;
              ppppiVar19[-1] = (int ***)0x0;
              ppppiVar19[0xf] = pppiVar18;
              ppppiVar19[0x15] = ppppiVar19[5];
              ppppiVar19[0x14] = ppppiVar19[4];
              *(undefined1 *)ppppiVar19 = 0;
              ppppiVar19[0x16] = ppppiVar19[6];
              ppppiVar19[0x17] = ppppiVar19[7];
              ppppiVar19 = ppppiVar2;
            } while (ppppiVar2 != (int ****)((int)ppppiVar1 + (int)ppppiVar17));
            local_bc = (uint ***)(ppppiVar17 + (((uint)(pppuVar22 + -0x20) >> 6) + 1) * 0x10);
            ppppiVar19 = (int ****)((int)ppppiVar1 + (int)ppppiVar17);
          }
          *ppppiVar24 = (int ***)*local_bc;
          ppppiVar24[1] = (int ***)local_bc[1];
          ppppiVar24[2] = (int ***)local_bc[2];
          ppppiVar24[3] = (int ***)local_bc[3];
          ppppiVar24[4] = (int ***)local_bc[4];
          ppppiVar24[5] = (int ***)local_bc[5];
          local_104 = (uint ***)ppppiVar24[6];
          local_10c = (uint ***)local_bc[6];
          if (ppppiVar19 == (int ****)local_10c) {
            pppiVar18 = (int ***)local_bc[7];
            if (pppiVar18 != (int ***)0x0) {
              if (pppiVar18 == (int ***)0x1) {
                *(undefined1 *)local_104 = *(undefined1 *)(local_bc + 8);
                local_104 = (uint ***)ppppiVar24[6];
                pppiVar18 = (int ***)local_bc[7];
              }
              else {
                local_108 = (uint ***)ppppiVar24;
                *(int ****)((int)piVar27 + -8) = pppiVar18;
                *(int *****)((int)piVar27 + -0xc) = ppppiVar19;
                *(uint ****)((int)piVar27 + -0x10) = local_104;
                *(undefined4 *)((int)piVar27 + -0x14) = 0x16134b;
                memcpy(*(void **)((int)piVar27 + -0x10),*(void **)((int)piVar27 + -0xc),
                       *(size_t *)((int)piVar27 + -8));
                pppiVar18 = (int ***)local_bc[7];
                local_104 = (uint ***)local_108[6];
                ppppiVar24 = (int ****)local_108;
              }
            }
            ppppiVar24[7] = pppiVar18;
            *(undefined1 *)((int)local_104 + (int)pppiVar18) = 0;
            local_104 = (uint ***)local_bc[6];
          }
          else {
            if (local_108 == local_104) {
              ppppiVar24[6] = (int ***)local_10c;
              ppppiVar24[7] = (int ***)local_bc[7];
              ppppiVar24[8] = (int ***)local_bc[8];
            }
            else {
              local_108 = (uint ***)ppppiVar24[8];
              ppppiVar24[6] = (int ***)local_10c;
              ppppiVar24[7] = (int ***)local_bc[7];
              ppppiVar24[8] = (int ***)local_bc[8];
              if ((int ****)local_104 != (int ****)0x0) {
                local_bc[6] = (uint **)local_104;
                local_bc[8] = (uint **)local_108;
                goto LAB_001611b8;
              }
            }
            local_bc[6] = (uint **)ppppiVar19;
            local_104 = (uint ***)ppppiVar19;
          }
LAB_001611b8:
          local_bc[7] = (uint **)0x0;
          *(undefined1 *)local_104 = 0;
          pppiVar18 = (int ***)local_bc[0xd];
          ppppiVar24[0xc] = (int ***)local_bc[0xc];
          ppppiVar24[0xd] = pppiVar18;
          pppiVar18 = (int ***)local_bc[0xe];
          ppppiVar24[0xf] = (int ***)local_bc[0xf];
          ppppiVar24[0xe] = pppiVar18;
          *(int *)((int)piVar27 + -0xc) = local_f8;
          *(int *)((int)piVar27 + -0x10) = local_fc;
          *(int *)((int)piVar27 + -0x14) = iVar29;
          *(int *****)((int)piVar27 + -0x18) = ppppiVar17;
          *(int *****)((int)piVar27 + -0x1c) = (int ****)local_d4;
          *(int *****)((int)piVar27 + -0x20) = ppppiVar24;
                    /* try { // try from 001611fe to 00161202 has its CatchHandler @ 00161551 */
          *(undefined4 *)((int)piVar27 + -0x24) = 0x161203;
          FUN_00167d90();
          goto LAB_00160b99;
        }
        if (0 < iVar29) {
          iVar29 = iVar29 >> 6;
          goto LAB_001609ce;
        }
        local_100 = local_11c;
LAB_00160b72:
        *(int *)((int)piVar27 + -4) = local_f8;
        *(int *)((int)piVar27 + -8) = local_fc;
        *(int *****)((int)piVar27 + -0xc) = (int ****)local_d4;
        *(int *****)((int)piVar27 + -0x10) = ppppiVar24;
                    /* try { // try from 00160b85 to 00160b89 has its CatchHandler @ 00161519 */
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160b8a;
        FUN_00165ca0();
        local_b4 = (uint ***)0x0;
        ppppiVar17 = (int ****)0x0;
LAB_00160b99:
        ppppiVar24 = ppppiVar17;
        if ((int ****)local_b4 != ppppiVar17) {
          do {
            if ((int ****)ppppiVar24[6] != ppppiVar24 + 8) {
              *(int ****)((int)piVar27 + -0x10) = ppppiVar24[6];
              *(undefined4 *)((int)piVar27 + -0x14) = 0x160bc1;
              FUN_001e6db0();
            }
            ppppiVar24 = ppppiVar24 + 0x10;
          } while ((int ****)local_b4 != ppppiVar24);
        }
        *(int *)((int)piVar27 + -0xc) = local_100;
        *(int *****)((int)piVar27 + -0x10) = ppppiVar17;
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160be4;
        FUN_001e6d70();
        lVar30 = CONCAT44(local_d4._4_4_,(int ****)local_d4);
        ppppiVar24 = (int ****)local_d8[-1];
        if ((int ****)local_d8[-1] == (int ****)*local_d8) goto LAB_00160c00;
      }
      do {
        local_b4 = (uint ***)ppppiVar24;
        local_74 = (int ***)*local_b4;
        local_70 = local_b4[1];
        local_6c = local_b4[2];
        local_68 = local_b4[3];
        local_64 = local_b4[4];
        local_60 = local_b4[5];
        piVar27 = (int *)puVar28;
        if ((int ***)local_70 == (int ***)0x0) {
          local_d4 = lVar30;
          if ((uint ***)0xfffffffb < local_74) {
            ppuVar5 = (undefined **)(*local_64)[3];
            if (ppuVar5 != local_b8 + -0xc6e88) {
              *(uint ***)(puVar28 + -0x10) = local_64;
              *(undefined4 *)(puVar28 + -0x14) = 0x161066;
              lVar31 = (*(code *)ppuVar5)();
              lVar30 = local_d4;
              goto LAB_00160fa4;
            }
            lVar31 = *(longlong *)((int ***)local_64 + 9);
            goto LAB_00160dde;
          }
          local_bc = (uint ***)&local_74;
          *(uint ****)(puVar28 + -0x10) = local_bc;
                    /* try { // try from 00160fd3 to 00161065 has its CatchHandler @ 00161527 */
          *(undefined4 *)(puVar28 + -0x14) = 0x160fd8;
          lVar30 = FUN_000ede20();
          lVar9 = local_cc;
          lVar10 = local_cc;
          if (local_e0 != 0 || local_e4 != 0) goto LAB_00160ffd;
        }
        else {
          uVar25 = (int)local_70 - 1U >> 5 & 1;
          bVar20 = (byte)((int)local_70 - 1U);
          lVar31 = CONCAT44(uVar25 << (bVar20 & 0x1f),(uVar25 ^ 1) << (bVar20 & 0x1f));
LAB_00160fa4:
          if ((uint ***)0xfffffffb < local_74) {
LAB_00160dde:
            ppuVar11 = local_64;
            if (((uint)local_64[7] & 2) == 0) {
              ppiVar6 = (int **)*local_64;
              *(uint ***)(puVar28 + -0x10) = local_64;
              pcVar3 = (code *)ppiVar6[0xe];
              *(undefined4 *)(puVar28 + -0x14) = 0x160ded;
              local_d4 = lVar30;
              (*pcVar3)();
              lVar30 = local_d4;
              if (((uint)ppuVar11[7] & 2) == 0) {
                *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6a;
                *(undefined4 *)(puVar28 + -0xc) = 0x163;
                *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;
                    /* WARNING: Subroutine does not return */
                *(undefined4 *)(puVar28 + -0x14) = 0x1614f8;
                FUN_00069d00();
              }
            }
          }
          local_bc = (uint ***)&local_74;
          *(uint ****)(puVar28 + -0x10) = local_bc;
          *(undefined4 *)(puVar28 + -0x14) = 0x160e12;
          local_d4 = lVar30;
          lVar30 = FUN_000ede20();
          if (local_e0 == 0 && local_e4 == 0) {
            local_d4 = lVar30;
            lVar9 = local_cc;
            lVar10 = local_cc;
            if (lVar31 == 0) goto LAB_00160d28;
          }
          else {
LAB_00160ffd:
            lVar31 = CONCAT44(local_e0,local_e4);
            local_d4 = lVar30;
            if (local_f0 != 0) {
              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd6e;
              *(undefined4 *)(puVar28 + -0xc) = 0xedf;
              *(undefined ***)(puVar28 + -0x10) = local_b8 + -0x41c55;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar28 + -0x14) = 0x1614d7;
              FUN_00069d00();
            }
            *(uint *)(puVar28 + -0xc) = local_e0;
            *(uint *)(puVar28 + -0x10) = local_e4;
            *(undefined4 *)(puVar28 + -0x14) = 0x161027;
            local_70 = (uint **)FUN_0027b5b0();
            lVar9 = local_cc;
          }
          local_cc._4_4_ = (uint)((ulonglong)lVar9 >> 0x20);
          local_cc._0_4_ = (uint)lVar9;
          lVar30 = lVar31 + lVar9 + -1;
          local_c4._0_4_ = (uint)lVar30 & -(int)lVar31;
          local_c4._4_4_ =
               (uint)((ulonglong)lVar30 >> 0x20) &
               -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0));
          lVar30 = local_d4;
          lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);
          if ((local_cc._4_4_ < local_c4._4_4_ ||
               local_cc._4_4_ - local_c4._4_4_ < (uint)((uint)local_cc < (uint)local_c4)) &&
             (lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4), *(int *)(param_10 + 4) != 0)) {
            local_cc = lVar9;
            if (local_c4._4_4_ - local_cc._4_4_ != (uint)((uint)local_c4 < (uint)local_cc)) {
              *(undefined ***)(puVar28 + -8) = local_b8 + -0x3dd18;
              *(undefined4 *)(puVar28 + -0xc) = 0xc0;
              *(int *)(puVar28 + -0x10) = (int)local_b8 + -0x107be7;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001614b1 to 00161518 has its CatchHandler @ 00161527 */
              *(undefined4 *)(puVar28 + -0x14) = 0x1614b6;
              FUN_00069d00();
            }
            *(uint *)(puVar28 + -4) = (uint)local_c4 - (uint)local_cc;
            *(int *)(puVar28 + -8) = param_10;
            *(int *)(puVar28 + -0xc) = param_1;
            *(undefined4 ***)(puVar28 + -0x10) = &local_5c;
            *(undefined4 *)(puVar28 + -0x14) = 0x160ec0;
            FUN_0015b5e0();
            *(undefined4 *)(puVar28 + -0x14) = 0x44;
                    /* try { // try from 00160eca to 00160ece has its CatchHandler @ 0016154a */
            *(undefined4 *)(puVar28 + -0x18) = 0x160ecf;
            pppiVar18 = (int ***)FUN_001e5200();
            pppiVar18[1] = (int **)0x0;
            pppiVar18[2] = (int **)0x0;
            pppiVar18[3] = (int **)local_58;
            pppiVar18[8] = (int **)0x0;
            pppiVar18[9] = (int **)0x0;
            pppiVar18[10] = (int **)0x0;
            pppiVar18[4] = (int **)0x0;
            pppiVar18[5] = (int **)0xffffffff;
            pppiVar18[6] = (int **)0xffffffff;
            *(byte *)(pppiVar18 + 7) = *(byte *)(pppiVar18 + 7) & 0xe0 | 10;
            *pppiVar18 = (int **)(local_dc + 2);
            pppiVar18[0xb] = (int **)(pppiVar18 + 0xd);
            *(undefined4 *)(puVar28 + -8) = 0;
            *(int *)(puVar28 + -0xc) = (int)local_58 + (int)local_5c;
            *(undefined4 **)(puVar28 + -0x10) = local_5c;
            *(int ****)(puVar28 + -0x14) = pppiVar18 + 0xb;
                    /* try { // try from 00160f3d to 00160f41 has its CatchHandler @ 00161535 */
            *(undefined4 *)(puVar28 + -0x18) = 0x160f42;
            FUN_000513a0();
            *(int ****)(puVar28 + -0x10) = pppiVar18;
            *(int *)(puVar28 + -0x14) = param_4;
                    /* try { // try from 00160f48 to 00160f4c has its CatchHandler @ 0016154a */
            *(undefined4 *)(puVar28 + -0x18) = 0x160f4d;
            FUN_000f2600();
            local_a4 = (uint **)pppiVar18;
            if (*(char *)(param_3 + 0x1d4) != '\0') {
              puVar14 = *(undefined4 **)(param_3 + 0x1dc);
              if (puVar14 == *(undefined4 **)(param_3 + 0x1e0)) {
                *(uint ****)(puVar28 + -0xc) = &local_a4;
                *(undefined4 **)(puVar28 + -0x10) = puVar14;
                *(int *)(puVar28 + -0x14) = param_3 + 0x1d8;
                    /* try { // try from 0016108c to 00161090 has its CatchHandler @ 0016154a */
                *(undefined4 *)(puVar28 + -0x18) = 0x161091;
                FUN_00163100();
              }
              else {
                *puVar14 = pppiVar18;
                *(undefined4 **)(param_3 + 0x1dc) = puVar14 + 1;
              }
            }
            piVar27 = (int *)(puVar28 + -4);
            lVar30 = local_d4;
            lVar9 = local_cc;
            lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);
            if (local_5c != &local_54) {
              *(undefined4 **)(puVar28 + -0x14) = local_5c;
              *(undefined4 *)(puVar28 + -0x18) = 0x160f83;
              FUN_001e6db0();
              piVar27 = (int *)(puVar28 + -4);
              lVar30 = local_d4;
              lVar9 = local_cc;
              lVar10 = CONCAT44(local_c4._4_4_,(uint)local_c4);
            }
          }
        }
LAB_00160d28:
        *(uint ****)((int)piVar27 + -0xc) = local_bc;
        *(int *)((int)piVar27 + -0x10) = param_4;
                    /* try { // try from 00160d3a to 00160ebf has its CatchHandler @ 00161527 */
        *(undefined4 *)((int)piVar27 + -0x14) = 0x160d3f;
        local_d4 = lVar30;
        local_cc = lVar9;
        local_c4 = lVar10;
        FUN_000f5270();
        local_cc = local_d4 + local_c4;
        local_b4 = local_b4 + 0x10;
        puVar28 = (undefined1 *)piVar27;
        ppppiVar24 = (int ****)local_b4;
        lVar30 = local_d4;
      } while ((int ****)*local_d8 != (int ****)local_b4);
    }
LAB_00160c00:
    local_d4._4_4_ = (undefined4)((ulonglong)lVar30 >> 0x20);
    local_ec = (uint **)((int)local_ec + 1);
    local_d8 = local_d8 + 3;
    if (local_ec == (uint **)local_f4) {
      if (((param_4 == 0) || ((*(byte *)(param_4 + 0x55) & 4) == 0)) ||
         (*(int *)(param_4 + 0x50) != 8)) {
        *param_7 = local_cc;
      }
      else {
        local_cc = *param_7;
      }
      *(longlong *)(param_1 + 0x40) = local_cc;
      *(undefined4 *)(param_1 + 0x48) = *param_9;
      puVar14 = local_114;
      if (local_110 != local_114) {
        do {
          ppppiVar24 = (int ****)puVar14[1];
          ppppiVar17 = (int ****)*puVar14;
          if (ppppiVar24 != ppppiVar17) {
            do {
              local_b4 = (uint ***)ppppiVar17;
              if ((uint ***)local_b4[6] != local_b4 + 8) {
                local_d4 = lVar30;
                *(uint ***)((int)piVar27 + -0x10) = local_b4[6];
                *(undefined4 *)((int)piVar27 + -0x14) = 0x160caf;
                FUN_001e6db0();
                lVar30 = local_d4;
              }
              local_b4 = local_b4 + 0x10;
              ppppiVar17 = (int ****)local_b4;
            } while (ppppiVar24 != (int ****)local_b4);
            ppppiVar17 = (int ****)*puVar14;
          }
          if (ppppiVar17 != (int ****)0x0) {
            local_d4 = lVar30;
            *(int *****)((int)piVar27 + -0x10) = ppppiVar17;
            *(undefined4 *)((int)piVar27 + -0x14) = 0x160cd8;
            FUN_001e6db0();
            lVar30 = local_d4;
          }
          puVar14 = puVar14 + 3;
        } while (puVar14 != local_110);
      }
      local_d4 = lVar30;
      *(undefined4 **)((int)piVar27 + -0x10) = local_114;
      *(undefined4 *)((int)piVar27 + -0x14) = 0x160cfa;
      FUN_001e6db0();
      return;
    }
  } while( true );
  iVar29 = iVar29 >> 1;
  if (iVar29 == 0) goto LAB_00160b72;
  goto LAB_001609e8;
}

